On 14/08/07, Dan Piponi <[EMAIL PROTECTED]> wrote: > On 8/14/07, Sebastian Sylvan <[EMAIL PROTECTED]> wrote: > > On 14/08/07, Dan Piponi <[EMAIL PROTECTED]> wrote: > > > 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. > > How would you make that distinction?
How can you *not* make a distinction? If you view source code as recipes, that's fine, but the *code* doesn't even exist in the program! You can't pass *code* around (unless you do it as String). Clearly there's a gulf of difference between the source code ASCII string that represent the factorial function, and a first class value that represents an action *in* the language. > At this point I can imagine > students immediately thinking that my factorial program is a recipe > and wondering why it doesn't involve monads. Well that's easy, don't use the recipe analogy to explain code, use it for monadic values exclusively, and you avoid the confusion entirely! I don't think it's that complicated. Monads have a monadic type. They represent an abstract form of an "action", which can be viewed as an analogy to real-world cooking recipes. As long as you don't deliberately confuse things by using the same analogy for two different things I don't see where confusion would set in. -- Sebastian Sylvan +44(0)7857-300802 UIN: 44640862 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe