
On 14/08/07, Ronald Guida
My present goal is to understand monads well enough to be able to explain them to others. I wonder if it's possible to create a tutorial that explains monads well enough so that they just "make sense" or "click" for people.
It seems everyone wants to do this, with not much success! :-(
From reading this thread (piecemeal rather than in one concentrated session) I get the impression that no-one agrees on what, if anything, a monad is. If there were a wiki page What_Is_A_Monad and all these ideas were whittled down whenever a counter-proof (such as Identity or Reader) were raised --- what would be left?
I get the impression it would look like this:
(return x) >>= f == f x m >>= return == m (m >>= f) >>= g == m >>= (\x -> f x >>= g)
And then where would we be? ;-) I say all this from the point of view of someone who has a reasonably robust intuitive idea of monads that still fails to encompass the List monad. I too would like to understand the overall idea to this monad malarkey... Cheers, D.