Difference between revisions of "Monad tutorials timeline"
From HaskellWiki
m 
(tweak formatting) 

Line 2:  Line 2:  
[[Category:Tutorial]] 
[[Category:Tutorial]] 

−  == before 
+  == before 2000 == 
+  
* 199208 [http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf Monads for Functional Programming]  Phil Wadler 
* 199208 [http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf 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! 
−  +  
−  +  == 2002 == 

+  
+  * 2002 [http://en.wikibooks.org/wiki/Haskell/YAHT 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 == 

+  
* 200308 [http://www.haskell.org/all_about_monads/html/ All about Monads]  Jeff Newbern 
* 200308 [http://www.haskell.org/all_about_monads/html/ 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. 
+  
+  == 2004 == 

+  
* 200407 [[Monads as Containers]]  Cale Gibbard 
* 200407 [[Monads as Containers]]  Cale Gibbard 

−  * 
+  *: Presents monads as boxes. Uses <hask>fmap</hask> and <hask>join</hask>. "If you will give me a blueberry for each apple I give you <hask>(a > b)</hask>, and I have a box of apples <hask>(f a)</hask>, then I can get a box of blueberries <hask>(f b)</hask>." 
== 2005 == 
== 2005 == 

+  
* 200507 [http://moonbase.rydia.net/mental/writings/programming/monadsinruby/00introduction.html Monads in Ruby]  MenTaLguY 
* 200507 [http://moonbase.rydia.net/mental/writings/programming/monadsinruby/00introduction.html Monads in Ruby]  MenTaLguY 

−  * 
+  *: Who said monads were special to Haskell? 
* 200511 [http://www.loria.fr/~kow/monads Of monads and space suits]  Eric Kow 
* 200511 [http://www.loria.fr/~kow/monads 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 == 
== 2006 == 

+  
* 200603 [http://en.wikibooks.org/w/index.php?title=Haskell/Understanding_monads&oldid=933545 Understanding Monads]  Eric Kow 
* 200603 [http://en.wikibooks.org/w/index.php?title=Haskell/Understanding_monads&oldid=933545 Understanding Monads]  Eric Kow 

−  * 
+  *: Monads as nuclear waste containers, an adaptation of monads as space suits with a new metaphor suggested by Paul Johnson 
* 200607 [[The Monadic Way]]  Andrea Rossato 
* 200607 [[The Monadic Way]]  Andrea Rossato 

−  * 
+  *: A twopart 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 
* 200608 [http://sigfpe.blogspot.com/2006/08/youcouldhaveinventedmonadsand.html You could have invented monads! (and maybe you already have)]  Dan Piponi 
* 200608 [http://sigfpe.blogspot.com/2006/08/youcouldhaveinventedmonadsand.html 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. 
−  +  * 200609 [[Meet Bob The Monadic Lover]]  Andrea Rossato 

−  * 
+  *: Bob embarks upon a series of romantic conquests... bind bind bind, Paula, Luisa, Antonia 
−  ** Bob embarks upon a series of romantic conquests... bind bind bind, Paula, Luisa, Antonia 

* 200611 [http://www.haskell.org/pipermail/haskellcafe/2006November/019190.html There's a Monster in my Haskell!] Andrew Pimlott 
* 200611 [http://www.haskell.org/pipermail/haskellcafe/2006November/019190.html 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. 
* 200612 [http://blog.tmorris.net/maybemonadinjava/ Maybe Monad in Java]  Tony Morris 
* 200612 [http://blog.tmorris.net/maybemonadinjava/ Maybe Monad in Java]  Tony Morris 

−  * 
+  *: Monads can also be useful in Java! 
== 2007 == 
== 2007 == 

+  
* 200701 [http://koweycode.blogspot.com/2007/01/thinkofmonad.html Think of a monad]  Don Stewart (reposted on Eric Kow's blog) 
* 200701 [http://koweycode.blogspot.com/2007/01/thinkofmonad.html Think of a monad]  Don Stewart (reposted on Eric Kow's blog) 

−  * 
+  *: Don integrates some preexisting monadic metaphors, shedding light on monads in a truly comprehensive manner (illustration by Eric) 
* 200702 [http://kawagner.blogspot.com/2007/02/understandingmonadsforreal.html Understanding Monads. For Real]  Karsten Wagner 
* 200702 [http://kawagner.blogspot.com/2007/02/understandingmonadsforreal.html Understanding Monads. For Real]  Karsten Wagner 

−  * 
+  *: A monad is like a macro 
* 200704 [http://saxophone.jpberlin.de/MonadTransformer?source=http%3A%2F%2Fwww%2Ehaskell%2Eorg%2Fhaskellwiki%2FCategory%3AMonad&language=English The Real Monad Transformer]  Henning Thielemann 
* 200704 [http://saxophone.jpberlin.de/MonadTransformer?source=http%3A%2F%2Fwww%2Ehaskell%2Eorg%2Fhaskellwiki%2FCategory%3AMonad&language=English The Real Monad Transformer]  Henning Thielemann 

−  * 
+  *: Not a tutorial either, but an important aid in demystifying monads 
* 200703 [http://www.randomhacks.net/articles/2007/03/12/monadsin15minutes Monads in 15 Minutes]  Eric Kidd 
* 200703 [http://www.randomhacks.net/articles/2007/03/12/monadsin15minutes Monads in 15 Minutes]  Eric Kidd 

−  * 
+  *: Eric boils monads down to 15 minutes, using backtracking and Maybe as motivating examples. Eric uses <hask>join</hask>, which seems quite rare for monad tutorials (cf Cale's ''Monads as containers'') 
* 200707 [http://ahamsandwich.wordpress.com/2007/07/26/monadsandwhymonadtutorialsareallawful/ Monads! (and why monad tutorials are all awful)]  Colin Gordon? 
* 200707 [http://ahamsandwich.wordpress.com/2007/07/26/monadsandwhymonadtutorialsareallawful/ Monads! (and why monad tutorials are all awful)]  Colin Gordon? 

−  * 
+  *: Csgordon reports that monad tutorials tend to "get horribly botched" and "either bored [him] to tears, struck [him] as completely inane, or simply confused [him]". He uncovers Phil Wadler's original 1995 paper, which not only gives a clear explanation but provides ''nontrivial'' motivating examples 
* 200708 [[Monads as computation]]  Cale Gibbard 
* 200708 [[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. 
* 200708 [http://en.wikibooks.org/wiki/Haskell/Understanding%20monads Understanding Monads] (2)  Apfelmus 
* 200708 [http://en.wikibooks.org/wiki/Haskell/Understanding%20monads Understanding Monads] (2)  Apfelmus 

−  * 
+  *: Wikibook rewrite of the original monads tutorial. Less fluff, more pedagogy. [In progress at the time of this writing]. 
−  * 200708 [[ 
+  * 200708 [[Monad (sans metaphors)]]  Claus Reinke 
−  * 
+  *: From a discussion about monad tutorials on Haskell Café (the name is due to haskellwiki user 'Green tea'). 
Revision as of 09:36, 17 August 2007
before 2000
 199208 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!
2002
 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
 200308 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.
2004
 200407 Monads as Containers  Cale Gibbard
 Presents monads as boxes. Uses
fmap
andjoin
. "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)
."
 Presents monads as boxes. Uses
2005
 200507 Monads in Ruby  MenTaLguY
 Who said monads were special to Haskell?
 200511 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
 200603 Understanding Monads  Eric Kow
 Monads as nuclear waste containers, an adaptation of monads as space suits with a new metaphor suggested by Paul Johnson
 200607 The Monadic Way  Andrea Rossato
 A twopart 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
 200608 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.
 200609 Meet Bob The Monadic Lover  Andrea Rossato
 Bob embarks upon a series of romantic conquests... bind bind bind, Paula, Luisa, Antonia
 200611 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.
 200612 Maybe Monad in Java  Tony Morris
 Monads can also be useful in Java!
2007
 200701 Think of a monad  Don Stewart (reposted on Eric Kow's blog)
 Don integrates some preexisting monadic metaphors, shedding light on monads in a truly comprehensive manner (illustration by Eric)
 200702 Understanding Monads. For Real  Karsten Wagner
 A monad is like a macro
 200704 The Real Monad Transformer  Henning Thielemann
 Not a tutorial either, but an important aid in demystifying monads
 200703 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)
 Eric boils monads down to 15 minutes, using backtracking and Maybe as motivating examples. Eric uses
 200707 Monads! (and why monad tutorials are all awful)  Colin Gordon?
 Csgordon reports that monad tutorials tend to "get horribly botched" and "either bored [him] to tears, struck [him] as completely inane, or simply confused [him]". He uncovers Phil Wadler's original 1995 paper, which not only gives a clear explanation but provides nontrivial motivating examples
 200708 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.
 200708 Understanding Monads (2)  Apfelmus
 Wikibook rewrite of the original monads tutorial. Less fluff, more pedagogy. [In progress at the time of this writing].
 200708 Monad (sans metaphors)  Claus Reinke
 From a discussion about monad tutorials on Haskell Café (the name is due to haskellwiki user 'Green tea').