[Haskell-cafe] Monad Description For Imperative Programmer

Stuart Cook scook0 at gmail.com
Thu Aug 2 07:31:47 EDT 2007

On 8/2/07, Dougal Stanton <ithika at gmail.com> 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.)"

"Monads for Functional Programming"

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

Stuart Cook

More information about the Haskell-Cafe mailing list