Comments 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
Каждый Haskell-разработчик должен уметь мыслить психоделическими кружочками? :)
Такие классные картинки, что захотелось выучить Хаскель
Хорошая статья, кружочки и обилие примеров порадовали :-)
Правда не понятен выбор именно ContT, а не просто Cont, ведь трансформеры, по моему, сложнее.
Правда не понятен выбор именно ContT, а не просто Cont, ведь трансформеры, по моему, сложнее.
Очень даже.
![[Newline in Haskell]](https://habrastorage.org/r/w1560/getpro/habr/comment_images/307/3c1/ef8/3073c1ef882c0b6eeb43133b80f486b3.jpg)
![[Newline in Haskell]](https://habrastorage.org/r/w1560/getpro/habr/comment_images/307/3c1/ef8/3073c1ef882c0b6eeb43133b80f486b3.jpg)
Sign up to leave a comment.
Монада ContT в картинках (Haskell)