Monads 101
From TunesWiki
A Learning Lounge course.
So what are monads? Well, monads are (ignoring Leibniz) a special kind of construction in category theory which are interesting as they can be used to realize in functional languages things like I/O, integration with imperative languages, concurrency and so. For this reason some category theory may help: see Category Theory 101.
- For the beginner:
- "A (hopefully) painless introduction to monads" is a short beginner's guide to using monads.
- "What the hell are monads?" is a practicioner introduction to monads, monadic programming, monadic I/O and such. Requires some knowledge of Haskell.
- "All About Monads", a recent extended tutorial which provides some good insight and metaphor that other tutorials have been missing.
- Check also "Monads for the dazed and confused".
- For people willing to know more about that, see Philip Wadler's "research papers on monads". Have a look at the paper titled "Understanding monads". [Where is it?? I suspect that the original editor was confused by Comprehending monads, which is about how list comprehensions may be generalised to an arbitrary monad. Mad70]
- For the theoretically challenged see the work of Eugenio Moggi.