Monad tutorials timeline
This is a comprehensive timeline of monad tutorials and related articles.
1 before 2000
- 1992-08 Monads for Functional Programming (pdf) - Phil Wadler, a designer of Haskell [9100 words]
- 1995-05 Monadic IO in Haskell 1.3 - Andrew D. Gordon and Kevin Hammond
- "We describe the design and use of monadic I/O in Haskell 1.3"
- 1999-02 What the hell are Monads? - Noel Winstanley [2800 words]
- 1999-Spring Monads for the working Haskell Programmer - Theodore S. Norvell [4200 words, Haskell98, Gofer]
2 year 2002
- 2002 Yet Another Haskell Tutorial (Chapter: Monads) - Hal Daumé III
3 year 2003
- 2003-08 All about Monads - Jeff Newbern [22600 words]
- 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.
4 year 2004
- 2004-07 A Schemer's Introduction to Monads - Dave Herman [1700 words, Lisp, Scheme]
- 2004-07 Monads as Containers (Russian translation) - Cale Gibbard [2900 words]
- 2004-08 Monads in Perl - Greg Buchholz [2200 words, Perl]
5 year 2005
- 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
6 year 2006
- 2006-03 Understanding Monads - Eric Kow
- 2006-07 The Monadic Way - Andrea Rossato
- 2006-08 You could have invented monads! (and maybe you already have) - Dan Piponi
- 2006-10 Monad Transformers Step by Step - Martin Grabmüller
- 2006-11 There's a Monster in my Haskell! Andrew Pimlott
- 2006-12 Maybe Monad in Java - Tony Morris
- Monads can also be useful in Java!
7 year 2007
- 2007-01 Think of a monad - Don Stewart (reposted on Eric Kow's blog)
- 2007-02 Understanding Monads. For Real - Karsten Wagner
- A monad is like a macro
- 2007-02 Crash Course in Monads Monads for Mathematicians
- Then I lie down in a dark room with a warm wet cloth over my eyes.
- 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 , which seems quite rare for monad tutorials (cf Cale's Monads as containers)join
- Eric boils monads down to 15 minutes, using backtracking and Maybe as motivating examples. Eric uses
- 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 the early Phil Wadler's paper, Monads for Functional Programming, which not only gives a clear explanation but provides non-trivial motivating examples
- 2007-08 Monads as computation - Cale Gibbard
- 2007-08 Understanding Monads (2) - Apfelmus
- 2007-08 Monad (sans metaphors) - Claus Reinke
- 2007-11 How to do IO in Haskell - Toby Goodwin
8 year 2008
- 2008-06 Monads (in Russian, English translation) - Eugene Kirpichov [8200 words ru, 10000 en]
- Real World Haskell, Chapter 14: Monads - Bryan O'Sullivan, Don Stewart, and John Goerzen
- "We aim to show you that a monad is often an obvious and useful tool to help solve a problem."
9 year 2009
- 2009-01 Abstraction, intuition, and the “monad tutorial fallacy” Not a monad tutorial itself, but a comment on monad tutorials and why many of them are so unhelpful.
- 2009-03 A Monad Tutorial for Clojure Programmers An interesting perspective on monads .
- 2009-11 What a Monad is not A desperate attempt to end the eternal chain of monad tutorials
10 year 2010
- 2010-03 State Monad Tutorial - Byron Johnson
- 2010-07 I come from Java and want to know what monads are in Haskell - Tim Carstens [Java]
- 2010-08 Learn You a Haskell, A Fistful of Monads
- "monads are just applicative functors that support >>=. The >>= function is pronounced as bind."
- 2010-08 Yet Another Monad Tutorial, part 1 (2, 3, 4, 5, 6, 7, 8) - mvanier [7100, 5400, 3100, 5600, 5500, 5800, 6700, 5800 words]
11 year 2011
- 2011-01 Monads for the Curious Programmer: Part 1, Part 2, Part 3, and Monads in C++ - Bartosz Milewski [3400, 4300, 3400, and 5200 words]
- 2011-03 monads in R: sapply and foreach - Ferdinand Jamitzky
- "Monads are a powerful way of structuring functional programs"
- "Monads are really about composing functions"
- 2011-04 Understanding Haskell Monads - Ertugrul Söylemez [12400 words]
- 2011-10 The Dead Simple, No Chit Chat, Zero-Analogy Haskell Monad Tutorial - Dan Burton [1800 words]
12 year 2012
- 2012-02 Futures: Monads with the Context of Asynchronous Programming - mr23
- "it's best to think of a monad as representing some context. What do I mean by context? ..."
- 2012-02 The Day Python Embarassed Imperative Programming - The 27th Comrade
- "Monads are conditional function calls"
- 2012-02 Scala Monads - Dan Rosen, Marakana [scala, video]
- 2012-04 The Less Travelled Monad Tutorial: Part 1, Part 2 - mightybyte
- 2012-04 Why Do Monads Matter? - Chris Smith