On 14/08/07, Dan Piponi <[EMAIL PROTECTED]> wrote:
> On 8/14/07, Sebastian Sylvan <[EMAIL PROTECTED]> wrote:
> > I like the very light weight analogy (which works for most practical
> > uses of monads) that a monadic action is a "recipe"
>
> Many introductory programming books present the idea of a program as a
> recipe. Here's a recipe for computing factorials:
>
> fact 0 = 1
> fact n = n*fact (n-1)
>
> Where do monads come in?

Well I would try to distinguish between code that we write to compute
values, and values which represent monadic actions when coming up with
analogies. You may wish to explain code as recipes too, but I think
your students would start getting confused if you overload the same
analogy for two different things.

The point was to find some real world analogy for "abstraction of an
action". A cooking recipe fits the bill pretty well. Everyone "gets"
that you can have a "model" of "making pancake batter" in the form of
a recipe, and that you can combine such recipes with other recipes or
store them in boxes or whatever. Once you're that far along, you're
half way there in teaching them enough to be able to use most monads
in practice.


-- 
Sebastian Sylvan
+44(0)7857-300802
UIN: 44640862
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to