[Haskell-cafe] do

> 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/