2012/8/8 Martijn Schrage <mart...@oblomov.com>: > Hi cafe, > > For a while now, I've been wondering why the 'let' keyword in a do block > isn't optional. So instead of > > do ... > let x = exp1 > y = exp2 > z <- exp3 > ... > > you could simply write > > do ... > x = exp1 > y = exp2 > z <- exp3 > ... > > Where each sequence of let-less bindings is put in a separate binding group. > I'm no parsing wizard, but I couldn't come up with any situations in which > this would cause ambiguity. To me, the let-less version is easier on the > eyes, more consistent with <- bindings, and also makes it less of a hassle > to move stuff around. > > The above probably also holds for list/monad comprehensions, but the > explicit let has never really bothered me there.
Hi, This is not a parsing problem, but a scoping one: try to run this program: main = do let x = y y = 5 let a = b let b = 6 print (x, y, a, b) Cheers, Thu _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe