[Haskell-cafe] Let's welcome the Ruby hackers!
Alexis
bonobo at bigpond.net.au
Fri Feb 2 00:50:23 EST 2007
On Fri, 2 Feb 2007 06:46 am, Paul Johnson wrote:
> I think we should also try to get some feedback about the learning
> experience: what tutorials work best, and what don't? Do metaphors for
> monads work?
Fwiw, here's an excerpt from something i wrote in my blog about monads (where
i've substituted links with references to footnotes):
"People have tried to communicate what Haskell monads are about in various
ways: via 'container' metaphors (e.g. this[1] and this[2]; i found the former
to be more illuminating than the latter); via relationship metaphors (e.g.
this[3], which i found more confusing than helpful), and even via a
'monsters' metaphor[4] (which i found to be rather amusing)1. One tutorial
that people on the Haskell-café list seem eager to recommend (and that's
recommended on the Haskellwiki) is All about monads[5], but that just
overwhelmed me when i first read it; and even now, when i've got a better
understanding of monads, i still find it difficult to follow. In contrast, i
found Tackling the awkward squad[6] and Monads for functional programming[7]
to both be very enlightening.
As far as i can tell, however, a monad simply seems to be a computational
environment in which one can specify that certain types and methods of
computation be performed, and in which the three monad laws are expected to
hold."
[1] http://www.haskell.org/haskellwiki/Monads_as_containers
[2] http://en.wikibooks.org/wiki/Haskell/Understanding_monads
[3] http://www.haskell.org/haskellwiki/Meet_Bob_The_Monadic_Lover
[4] http://www.haskell.org/pipermail/haskell-cafe/2006-November/019190.html
[5] http://www.nomaware.com/monads/html/
[6] http://research.microsoft.com/~simonpj/papers/marktoberdorf/
[7] http://homepages.inf.ed.ac.uk/wadler/topics/monads.html
To that, i would also add that i've found Martin Grabmueller's "Monad
Transformers Step by
Step" ( http://uebb.cs.tu-berlin.de/~magr/pub/Transformers.en.html ) and
Simon Peyton-Jones' "Beautiful
Concurrency" ( http://programming.reddit.com/info/vsba/comments ) to be very
readable and enlightening. Finally, i enjoyed reading Hal Daume III's "Yet
Another Haskell Tutorial", since unlike many introductions to Haskell, it
assumed that i was already familiar with a variety of programming concepts.
My background: well, firstly, apropos of the recent discussions about the
qualifications of those studying / learning Haskell, i have a Bachelor of
Arts degree majoring in Womens' Studies. :-) i have, however, done
professional development work using both Perl and VBA (the latter in the
context of MS Access). The only formal mathematical training i've had is the
mathematics i did at secondary school, which went up to and included the
basics of differentiation and integration. Having said that, i have continued
to teach myself various areas of mathematics (e.g. set theory and point-set
topology - category theory i'd like to learn more about, but am struggling to
get around to doing so).
i must say i'm really enjoying learning Haskell: not only because, as a side
effect :-), i'm ending up learning various bits and pieces about computer
science; but also because i've come to very much appreciate the Haskell
community. In contrast with other IT-related communities i've experienced,
i've found the Haskell community (both here and on IRC) to generally be
helpful, good-humoured and mercifully lacking in flames and alpha
behaviours. :-)
i'm really hoping this "Cookbook" project happens - it would be great to be
able to turn to Haskell for solutions to the sort of problems i come across
on a regular basis, so that i'm no longer solely thinking in terms of Perl
solutions to those problems. :-)
Alexis.
More information about the Haskell-Cafe
mailing list