On 8/2/07, Dougal Stanton <[EMAIL PROTECTED]> wrote: > Do I have an suggestions? Well, maybe the right way would be to do as > we do with map and fold, etc: show the explicitly recursive example, > then generalise. So, show how we could we would thread state in > Haskell, or how we would do optional (Maybe-style) values, then > generalise, *slowly* coalescing the more similar monads first before > reaching the 'top' of the monadic phylogenetic tree. > > Hmm, I can see that previous paragraph is not as clear as it could be. > But anyway: has anyone used this approach before?
These immediately came to mind: "You Could Have Invented Monads! (And Maybe You Already Have.)" http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html [http://tinyurl.com/ecqzl] "Monads for Functional Programming" http://citeseer.ist.psu.edu/wadler95monads.html [http://tinyurl.com/2foj46] I personally received my first monadic enlightenment from Bird's "Introduction to Functional Programming using Haskell", which also uses the same approach. I think it's an excellent way to approach the topic. Stuart Cook _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe