From:

A Neighborhood of Infinity

Monday, August 07, 2006
You Could Have Invented Monads! (And Maybe You Already Have.)

http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html

The following part:

do
    let x = 7
    y <- Writer (x+1,"inc\n")
    z <- Writer (2*y,"double\n")
    Writer (z-1,"dec\n")

The notation is very suggestive. When we write y <- ... it's as if we can pretend that the expression on the right hand side is just x+1 and that the side-effect just looks after itself.


Why pretend?
Couldn't the syntax be:

do
    let x = 7
    y <- x+1, Writer ("inc\n")
    z <- 2*y, Writer ("double\n")
    z-1, Writer ("dec\n")

Or some other delimiter than the comma?

I'm thinking this syntax might be easier to understand. :)




_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to