On May 21, 2011, at 7:31 AM, Rick Waldron wrote:

> At the very bottom, there is a note that says:
> 
> "With GLR parsing for the spec grammar, we could consider, e.g. (x) {x} 
> instead of {|x| x} with LineTerminator excluded between parameters and body."
> 
> FWIW, Speaking from a developers perspective, the syntax: (x){x} , has a very 
> familiar voice that I'm confident would find immediate acceptance and fast 
> adoption (I know this because it's recently been discussed by myself and 
> several different groups of my developer peers)

The problem is ambiguity:

  b = a.forEach (x) { x * x }

looks like a call, a.forEach(x), whose return value is assigned to b, where the 
assignment expression is followed by a block statement on the same line, a 
syntax error currently.

The restriction that ) and { are on the same line is necessary for this to be a 
backward-compatible extension, but it doesn't help the parsing ambiguity.

Putting block parameters on the inside of the { }, even though that requires | 
| or a longer way of bracketing the parameters, does not introduce this 
ambiguity.

/be

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to