Комментарии 10
Самое прекрасное использование ContT, на мой взгляд, это
file :: FilePath -> IOMode -> ContT r IO Handle
file f mode = ContT $ withFile f mode -- withFile закроет файл в случае исключения
test :: [FilePath] -> ContT r IO [String]
test fs = do
-- никаких вложенных конструкций
hs <- mapM (\f -> file f ReadMode) fs
-- используем handles
ss <- liftIO $ mapM hGetContents hs
return ss
+1
Каждый Haskell-разработчик должен уметь мыслить психоделическими кружочками? :)
+3
Такие классные картинки, что захотелось выучить Хаскель
+1
Хорошая статья, кружочки и обилие примеров порадовали :-)
Правда не понятен выбор именно ContT, а не просто Cont, ведь трансформеры, по моему, сложнее.
Правда не понятен выбор именно ContT, а не просто Cont, ведь трансформеры, по моему, сложнее.
-1
Очень даже.
+6
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Монада ContT в картинках (Haskell)