Having come across the concepts of functional programming recently; I am beginning to appreciate all the food for thought on the FP plate, function composition, currying…
I have also come across the term Monad, I have found most of the explanations to be incomprehensible. Could you explain it in simple terms?
Rad one
Developer, learning F# and Haskell
(I would love to be able to provide a simple and comprehensive answer as I had some hard time myself to understand this term, here is a try)
Monad is mathematical abstraction and an other name (more meaningful for developer) would be computation builder. Let's say it is a way to chain operations (with bind operation), and what make Monad useful for us is that every monad is different (so it do something more than just chaining). And this is how for a language like Haskell which is pure (no side-effect in function) we can accomplish I/O and other useful stuff.
More elaborated answer here : stackoverflow.com/questions/44965/what-is-a-monad