John Hughes wrote:
> 
> That's the reason Haskell has two binding constructions.
> 

Its a reason why it was a good decision to have both constructs. 

There was some debate about which to have - it's a matter of personal
preference and style. The problem is that if you have both let and where
in the expression syntax, then

let a in b where c

is ambiguous unless you make an arbitrary decision about the precedence,
and that kind of arbitrariness is an opportunity for error - the
programmer mis-remembers the rule and gets a syntactically valid program
that does not do what was intended.

I always though that the resolution, allowing both but making where part
of the declaration syntax, thus both having a justification for the
parsing order and creating a means to write local definitions which span
guarded equations, was a very fine decision.

--brian

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

Reply via email to