Понимание функции bind в Haskell

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

Есть ли где-нибудь хорошая статья, которая не ориентирована на новичка в джунглях C++?

10
задан Tikhon Jelvis 3 February 2012 в 06:54
поделиться