yurlin
lectures добро monads URL какое замечательное мероприятие было этим летом
Oregon Programming Languages Summer School:
cs.uoregon.edu

Lecture Notes и тяжеловесные видео наличествуют.
Можно поглядеть на Пирса, Steve Awodey, Robert Harper, Xavier Leroy и John Hughes. И других товарищей из INRIA и CMU.
PineappleZombie
monads Haskell Почему композиция монад не монада? Потому что есть join :: Monad m ⇒ m (m a) → m a, и поотму надо уметь склеивать два конструктора типов в один. Для функторов и аппликативных функторов всё хорошо:

fmap' = fmap . fmap
pure' = pure . pure
(<>) = \f g → (<>) <> f <> g = liftA2 (<*>)

А в монадах никак:

join' :: Monad m,n ⇒ m (n (m (n a)) → m (n a)

Чтобы написать такую функцию необходимо иметь функцию swap :: Monad m,n ⇒ n (m a) → m (n a). В общем случае её написать нельзя. Для частных случаев, например двух Reader monads, можно. Осталось только понять каким законам должна подчиняться функция swap.
nirthfurzahad
Prolog monads А можно ли рассматривать функторы, типа functor(atom1, atom2) из Prolog (если кто помнит) — Как Монады? Я все еще туплю с основами теории категорий.