On Jan 18, 2012, at 10:36 AM, Gavin Barraclough wrote:

> On Jan 18, 2012, at 2:09 AM, Brendan Eich wrote:
>>   x = y
>>   ^{z: w}
> 
> On Jan 18, 2012, at 9:05 AM, Oliver Hunt wrote:
>> Alas ^ is syntactically ambiguous in the non-argument case:
>> foo
>> ^{...}
> 
> The ambiguity here doesn't seem particularly troubling. Under ASI this parses 
> in a sensible fashion.

It doesn't

a
^
b

does not get any ASI, and is parsed (correctly) as a^b


> This seems unlikely to cause any confusion in real usage, since it only 
> effects an object literal as an operand to a bitwise operator.

I dislike the | mode quite a lot, the only obvious reason for that proposal 
existing is some peoples current love of ruby :)  Why not use the C++ lambda 
syntax?  or the MSVC lambda syntax? or the haskell syntax? etc, etc (Obj-C uses 
the ^ that we've already demonstrated is ambiguous :D )

> 
> On the other hand, reuse of | seems somewhat more awkward. Based on the block 
> lambda revival proposal, I believe:
>       {|x = (a&b)| x}
>       {|x = (a&&b)| x}
>       {|x = a&b| x}
> Are all valid block lambdas, but:
>       {|x = a&&b| x}
> Isn't.
> Allowing an arbitrary subset of infix operators in initializer expressions 
> seems an unfortunate wart, and potentially confusing to users of the language.
> 
> On Jan 18, 2012, at 2:09 AM, Brendan Eich wrote:
>> 2. The TCP conformance makes anything like function (params) {body} an 
>> anti-pattern. Changing function to ^ does not avoid this problem. We want 
>> block-lambdas to look different from functions.
>> 
>> (2) is an overriding objection in my view.
> 
> That's a fair point.
> For my tastes reusing | as delimiters to the parameter lists is a step too 
> far away from function-like syntax, particularly if it restricts an arbitrary 
> subset of infix operators from initializers.
> 
> I'd suggest changing the terminator for the parameter list to something other 
> than | ...
>       {|:  foo() }
>       {|x,y:  foo(x,y) }
> But I'd hate myself if I did. ;-)
> 
> G.
> 

_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to