Probably one should understand how to use monads before worrying about
the do-notation.  Here are some references:

I don't totally agree.  You can teach monads to beginners just fine
using the do-notation.  Unsuprisingly its very much like teaching
monads using bind.  You describe a two line do-block as the basic
building block for combining two actions into a single action:

    do {
        result1 <- act1
        expr involving result1 building an act
    }

show that you can nest them (expr can be another do block)

    do {
        result1 <- act1
        do {
            result2 <- act2
            expr involving result1 and result2 building an act
        }
    }

and how the do-notation doesn't require you to start a new do-block
for nesting of do's and let's

   do {
       result1 <- act1
       let val1 <- expr resulting in a pure value
       result2 <- act2
       expr involving result1 and result2 building an act
   }

Then you can describe pattern matching and fail...

I've had debates about what should be taught, and obviously not
everyone agrees, but at the least, its possible and reasonable
and understandable to teach do-notation first.

                             Denis

Tim Newsham
http://www.thenewsh.com/~newsham/
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to