Monad tutorials timeline

From HaskellWiki
Revision as of 09:51, 17 August 2007 by EricKow (talk | contribs)

Jump to: navigation, search

This timeline covers not just monad tutorials, but interesting events in monad tutorial history.

before 2000

  • 1992-08 Monads for Functional Programming - Phil Wadler
    "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!
  •  ???? Monads for the working Haskell Programmer - Theodore S. Norvell
    One of the original tutorials, eventually "updated for Haskell98"


  • 2002 Yet Another Haskell Tutorial - Hal Daumé III
    The most recommended Haskell tutorial ever. Not a monad tutorial per se, but it does address the topic


  • 2003-08 All about Monads - Jeff Newbern
    A comprehensive introduction to monads, covering also "advanced" topics like monad transformers and use of some common monads. There is an appendix which presents monads as assembly lines.


with the assumption that the reader is comfortable with continuations, CPS, accumulators, and accumulator-passing style."

  • 2004-07 Monads as Containers - Cale Gibbard
    Presents monads as boxes. Uses fmap and join. "If you will give me a blueberry for each apple I give you (a -> b), and I have a box of apples (f a), then I can get a box of blueberries (f b)."
  • 2004-08 Monads in Perl - Greg Buchholz
    Written in the spirit of TMTOWTDI


  • 2005-07 Monads in Ruby - MenTaLguY
    Presents monads in a friendly language, starting from Identity and building on up
  • 2005-11 Of monads and space suits - Eric Kow
    Functions are space stations, parameters are astronauts and monads are space suits that let us safely travel from one function to another.


  • 2006-03 Understanding Monads - Eric Kow
    Monads as nuclear waste containers, an adaptation of monads as space suits with a new metaphor suggested by Paul Johnson
  • 2006-07 The Monadic Way - Andrea Rossato
    A two-part tutorial. The first part shows you how build a simple evaluator, and the second part shows you how to "take the complexity" out of it by using techniques such as monad transformers
  • 2006-08 You could have invented monads! (and maybe you already have) - Dan Piponi
    "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.
  • 2006-09 Meet Bob The Monadic Lover - Andrea Rossato
    Bob embarks upon a series of romantic conquests... bind bind bind, Paula, Luisa, Antonia
  • 2006-10 Monad Transformers Step by Step - Martin Grabmüller
    • 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.
  • 2006-11 There's a Monster in my Haskell! Andrew Pimlott
    This delightful "tutorial" presents monads as monsters which devour values, use them to feed other monsters and regurgitate them when slain.
  • 2006-12 Maybe Monad in Java - Tony Morris
    Monads can also be useful in Java!


  • 2007-01 Think of a monad - Don Stewart (reposted on Eric Kow's blog)
    Don integrates some pre-existing monadic metaphors, shedding light on monads in a truly comprehensive manner (illustration by Eric)
  • 2007-02 Understanding Monads. For Real - Karsten Wagner
    A monad is like a macro
  • 2007-04 The Real Monad Transformer - Henning Thielemann
    Not a tutorial either, but an important aid in demystifying monads
  • 2007-03 Monads in 15 Minutes - Eric Kidd
    Eric boils monads down to 15 minutes, using backtracking and Maybe as motivating examples. Eric uses join, which seems quite rare for monad tutorials (cf Cale's Monads as containers)
  • 2007-07 Monads! (and why monad tutorials are all awful) - Colin Gordon?
    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 Phil Wadler's original 1995 paper, which not only gives a clear explanation but provides non-trivial motivating examples
  • 2007-08 Monads as computation - Cale Gibbard
    A very straightforward presentation of monads. Notable for its "The whole point" section, which conveys way we bother if all this monad business.
  • 2007-08 Understanding Monads (2) - Apfelmus
    Wikibook rewrite of the original monads tutorial. Less fluff, more pedagogy. [In progress at the time of this writing].
  • 2007-08 Monad (sans metaphors) - Claus Reinke
    From a discussion about monad tutorials on Haskell Café (the name is due to haskellwiki user 'Green tea').