Allen's lambda syntax proposal

David-Sarah Hopwood david.hopwood at industrial-designers.co.uk
Sat Dec 6 18:17:34 PST 2008


Eric Suen wrote:
> This is ambiguous
> 
> {(a, b)
> a + b}
> 
> is
> 
> {(a,b);
> a+b
> }

This example isn't ambiguous, because an ExpressionStatement cannot start
with '{', therefore this is a block. However the fact that a lambda
starting an ExpressionStatement would have to be parenthesized is a
valid argument against this syntax, and also against {|a, b| a+b}.

> unless use no line break restrict and it is difficult to parse

It's not actually difficult to parse (since an object literal cannot
have '(' after the '{'), but I don't think it has any advantages over
syntaxes starting with '^' or '\'.


('^' is back on the table given that the semicolon insertion hazard
that caused us to be suspicious of it, already exists when a line
starts with '(', for example.)

-- 
David-Sarah Hopwood


More information about the Es-discuss mailing list