Size: a a a

2020 December 12

YS

Yan Shkurinskiy in Haskell
Вместо IO
источник

DB

Danil Berestov in Haskell
Да, тока Async енто не монада
источник

KV

Kirill Valyavin in Haskell
Danil Berestov
Я хочу, чтобы ИО меня не блочил, вот и сё)
Надо писать ио процедуры, которые не блочат. И не будет блочить
источник

DB

Danil Berestov in Haskell
Kirill Valyavin
Надо писать ио процедуры, которые не блочат. И не будет блочить
ах вот оно шо)
источник

DB

Danil Berestov in Haskell
а как...
источник

KV

Kirill Valyavin in Haskell
forkIO
источник

DB

Danil Berestov in Haskell
Блин, сложна, как вы эти программы проектируете
источник

DB

Danil Berestov in Haskell
зачем, если есть async
источник

KV

Kirill Valyavin in Haskell
Danil Berestov
зачем, если есть async
Ну тода async
источник

к

кана in Haskell
Danil Berestov
ещё такой вопрос вдогонку: как мне в монадический трансформер затащить асинхронность? кто-то такое делал?
f :: MonadIO m => m Int
f = do
 x <- liftIO $ async do
   threadDelay 99999999
   pure 1
 liftIO $ print "a"
 y <- liftIO $ wait x
 pure y
источник

к

кана in Haskell
x :: Async Int
источник

YS

Yan Shkurinskiy in Haskell
Danil Berestov
Да, тока Async енто не монада
Да, не так написал - возвращай Async в IO
источник

DB

Danil Berestov in Haskell
Да, спасибо, сообразил)
источник

к

кана in Haskell
кана
f :: MonadIO m => m Int
f = do
 x <- liftIO $ async do
   threadDelay 99999999
   pure 1
 liftIO $ print "a"
 y <- liftIO $ wait x
 pure y
если в стеке только ридер, то можно использовать unliftio
источник

к

кана in Haskell
тогда внутри асинка будет тот же ридер
источник

DB

Danil Berestov in Haskell
кана
если в стеке только ридер, то можно использовать unliftio
Не, анлифт это какая-то хрень, удалось избежать, хотя тоже изначально думал.
источник

DB

Danil Berestov in Haskell
я просто научил SqlT возвращать Async a вместо a и сделал тайпкласс MonadAsync m с методом wait :: Async a -> m a
источник

MK

Maxim Koltsov in Haskell
больше mtl богу mtl!
источник

DB

Danil Berestov in Haskell
Ну) Ну я экспериментирую)
источник

KV

Kirill Valyavin in Haskell
Danil Berestov
Ну) Ну я экспериментирую)
Потом окажется, что проще тупо в ио писать. С имплисит аргументами
источник