[Haskell-cafe] Monad Syntax
caseyh at istar.ca
caseyh at istar.ca
Mon Dec 13 22:06:41 CET 2010
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. :)
More information about the Haskell-Cafe
mailing list