''[I]t seems like every programmer who ''gets'' monads posts a tutorial about them. (And each post begins with: There’s already a lot of monad tutorials on the Internet, but...) The reason is that ''getting'' monads it’s like a spiritual experience that you want to share with others.'' - Bartosz Milewski

== before 2000 ==

== before 2000 ==

Revision as of 14:07, 13 January 2012

This timeline covers not just monad tutorials, but interesting events in monad tutorial history. Please update this list! Don't worry about getting dates, authors, blurbs unless you really want to. We can fix it later.

Older tutorials are especially interesting.

[I]t seems like every programmer who gets monads posts a tutorial about them. (And each post begins with: There’s already a lot of monad tutorials on the Internet, but...) The reason is that getting monads it’s like a spiritual experience that you want to share with others. - Bartosz Milewski

Contents

1 before 2000

"Shall I be pure or impure?" One of the earliest papers on monads by the man hiself. Has been called the "ne plus ultra of approachable, useful introductions to monads". It's pretty hefty (31 pages), which is a good thing!

Written when 'what is a monad' started becoming an FAQ. Very short and sweet, advertised as more examples than theory. "Once upon a time, people wrote their Haskell programs by sequencing together operations in an ad-hoc way."

"Writing introductions to monads seems to have developed into an industry," Dan (sigfpe) observes. He argues that monads are not "something esoteric in need of explanation", but walks you through the process of reinventing monads to solve some very basic and practical problems.

Monad transformers are rarely covered in introductory tutorials. This "is not a paper about implementing transformers, but about using them to write elegant, clean and powerful programs in Haskell". Available as a 12 page PDF or .lhs file.

Author's Description: 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.

Csgordon reports that monad tutorials tend to "get horribly botched" and says "[they] either bored me to tears, struck me as completely inane, or simply confused me". He uncovers the early Phil Wadler's paper, Monads for Functional Programming, which not only gives a clear explanation but provides non-trivial motivating examples

10 year 2010

An example showing how a simple Java class is translated into a stack of monad transformers, with a metaphor about how monads are like conversations, and why this idea should be familiar to OO programmers.