Monads in programming seem to be the most mysterious notion of the century. I find two reasons for this:

  • lack of familiarity with category theory;
  • many authors carefully bypass any mention of categories.

It's like talking about electricity without using calculus. Good enough to replace a fuse, not good enough to design an amplifier.


This crash course starts with an easy introduction to categories and functors, then we define a monad, then give some basic examples of monads in categories, then present monadic terminology as used in programming languages.


I am sure that if you approach the topic from categorical point of view, everything will look almost elementary.

Vlad Patryshev, 3/7/2006 - 2/12/2007

Best viewed with Firefox, Mozilla, Netscape. Volunteers to reformat it for IE are welcome.

Here is a pdf version of this slide show.