
On 14/08/07, Dan Piponi
On 8/14/07, Sebastian Sylvan
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