The term monad has been infamous for many years. Not because it's an amazingly useful construct, but because of the complexity it introduces. There is also a common belief that once you understand monads, you lose the capability to explain them.
"In order to understand monads, you need to first learn Haskell and Category Theory.
I think this is like saying: In order to understand burritos, you must first learn Spanish."
- Douglas Crockford: Monads and Gonads (YUIConf Evening Keynote)
https://www.youtube.com/watch?v=dkZFtimgAcM.
I think this is like saying: In order to understand burritos, you must first learn Spanish."
- Douglas Crockford: Monads and Gonads (YUIConf Evening Keynote)
https://www.youtube.com/watch?v=dkZFtimgAcM.
A monad is a way of composing functions despite special circumstances, such as nullable values, side-effects, computations, or just conditional execution. Such a definition of a monad makes it a context holder. That's why the monad of X is not equivalent to X. This X Before being treated as monad<X>, this...