Thursday 30 December 2010

Happy Birthday IO Monad

Interesting post from the Haskell mailing list....

[Haskell-cafe] The IO monad is 45 years old

An old (1994) paper on category theory monads and functional
programming included an interesting historical side-note. It turns out
that the RealWorld-passing trick underlying the implementation of the
IO monad, the trick that made it possible to embed truly side-effecting 
operations into pure Haskell -- the trick is 45 years old. It has been
first published in February 1965.

That 1965 paper also anticipated State and Writer monad, call/cc,
streams and delayed evaluations, relation of streams with co-routines,
and even stream fusion.

First, here is the historical aside, cited from 

   Jonathan M. D. Hill and Keith Clarke
   An Introduction to Category Theory, Category Theory Monads,
   and Their Relationship to Functional Programming. 1994
   http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.53.6497

 

 

No comments: