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
Thursday, 30 December 2010
Happy Birthday IO Monad
Interesting post from the Haskell mailing list....