Комментарии 7
Материал Габриеля как всегда восхитителен, а вот перевод мне не понравился, извините.
+4
Прикольно, хоть и ничего не понятно
+2
Осталось только рейс кондишены заимплементить, и можно смело выкидывать сишные потоки!
0
НЛО прилетело и опубликовало эту надпись здесь
Есть исходник с компилируемым рабочим кодом к этой статье (правда, слегка отредактированный). основные изменения — расширения компилятора {-# LANGUAGE DeriveFunctor #-}
{-# LANGUAGE DeriveAnyClass #-},
data ThreadF next = Fork next next
| Yield next
| Done
deriving (Functor,Applicative, Monad,MonadIO),
liftIO вместо lift. Полный исходник здесь — gist.github.com/SergeyStretovich/43e7dfd93a125131bb2b62216cb19691
{-# LANGUAGE DeriveAnyClass #-},
data ThreadF next = Fork next next
| Yield next
| Done
deriving (Functor,Applicative, Monad,MonadIO),
liftIO вместо lift. Полный исходник здесь — gist.github.com/SergeyStretovich/43e7dfd93a125131bb2b62216cb19691
+1
Кстати, принципам описанным в статье есть весьма полезные применения: https://www.thev.net/PaulLiu/invert-inversion.html
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Кооперативные потоки с нуля в 33 строках на Хаскеле