Я знаком с монадами в теории категорий (на самом деле это очень простая концепция), но функция >>=
в Haskell полностью меня озадачивает. Итак, применяя привязку к значению M a
, а функция a -> M u
совпадает с первым применением монады к этой функции, затем оценивая ее по указанному значению и умножая результат: a >>= f
совпадает с join $ (fmap f) $ a
. Но как это естественное описание вычислений? Есть ли какой-нибудь полезный способ взглянуть на него, что поможет мне понять это?
Есть ли какая-нибудь хорошая статья где-то, которая не ориентирована на кого-то нового из джунглей С++?