Size: a a a

2021 January 28

MK

Maxim Koltsov in Haskell
ты уверен что это хорошая идея?
источник

IK

Ilya Kos in Haskell
Ну в случае commit транзакций наверное нет
источник

IK

Ilya Kos in Haskell
Но мне не совсем это нужно
источник

KV

Kirill Valyavin in Haskell
Дофига таких приёмов, надо конкретнее
источник

IK

Ilya Kos in Haskell
Kirill Valyavin
Дофига таких приёмов, надо конкретнее
Какие слова гуглить?
источник

KV

Kirill Valyavin in Haskell
Ilya Kos
Какие слова гуглить?
Не знаю, лучше расскажите, что сделать надо
источник

KV

Kirill Valyavin in Haskell
Популярное общее решение - сделать тип и не экспортить конструкторы
источник

IK

Ilya Kos in Haskell
Ну в приложении есть ресурс, который надо блокировать на время обработки. Обработка может быть долгая, поэтому в хендлере для обработки стартуется тред, а хендлер запросы быстро отвечает что обработка началась. После завершения обработки в дочернем треде ресурс помечается как “доступный”.

Это не связано с базой. Надо просто обеспечить чтобы одновременно одно и то же не обрабатывалось.
источник

IK

Ilya Kos in Haskell
Мысль в том, что это легко сделать с какой-нибудь мапой в STM
источник

IK

Ilya Kos in Haskell
В которой помечается то, что сейчас обрабатывается
источник

IK

Ilya Kos in Haskell
Хочется чтобы нигде не забылось “отпустить” этот ресурс
источник

IK

Ilya Kos in Haskell
Вопрос в абстракции по сути
источник

KV

Kirill Valyavin in Haskell
bracket ?
источник

IK

Ilya Kos in Haskell
Так ресурс блокируется в самом хендлере, а отпускается в фоновом треде
источник

KV

Kirill Valyavin in Haskell
А почему бы не блокировать в фоновом?
источник

IK

Ilya Kos in Haskell
Потому что, например, первичная часть обработки может быть быстрой, и она нужна для ответа на запрос
источник

IK

Ilya Kos in Haskell
Но вообще, перенести все критичное в фон тоже выход, я над этим подумаю
источник

KV

Kirill Valyavin in Haskell
Ilya Kos
Потому что, например, первичная часть обработки может быть быстрой, и она нужна для ответа на запрос
Можно подождать через мвар
источник

FL

First Last in Haskell
Добрый день!
Есть задача сделать varargs для конкатенации строк
polyWords "This" "is" "a" "sentence." :: String  -- "This is a sentence."


Кое-как с подсказами с гитхаба накастылял это
class Words a where 
 concatWords :: String -> a

instance Words String where
   concatWords = id

instance (Show a, Words r) => Words (a -> r) where
   concatWords acc = \x -> concatWords $ acc ++ " " ++ show x

polyWords :: (Words t) => t
polyWords = concatWords []


Только беда с тем, что
" \"This\" \"is\" \"a\" \"sentence.\""

Я получаю слеши. Пробел в начале то понятно почему, а вот слеши...
источник

MK

Maxim Koltsov in Haskell
λ> show "foo"
"\"foo\""
источник