I really don't think prefix is neccessary, what about:

(a;b;c) {...}

or

(a:b:c) {...}

2nd one may have problem with '::' or TypedIdentifier in ES4.

Regards,

Eric Suen

----- Original Message ----- 
From: "Maciej Stachowiak" <[EMAIL PROTECTED]>
Newsgroups: gmane.comp.lang.javascript.ecmascript4.general
To: "Brendan Eich" <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Tuesday, December 02, 2008 4:59 AM
Subject: Re: Allen's lambda syntax proposal


>
> On Nov 29, 2008, at 10:30 PM, Brendan Eich wrote:
>
>> At the TC39 meeting two weeks ago in Kona, we had a brief  bikeshedding 
>> discussion about lambda syntax and why it matters.  Observation: blocks in 
>> Smalltalk being lightweight means users don't  mind writing them for control 
>> abstractions, compared to JS functions  in ES3. In Smalltalk, ignoring JS, 
>> it's hard to beat [ and ] as  overhead, although one must count the message 
>> selector and its  punctuation too.
>>
>> Allen Wirfs-Brock put his proposal, which will not shock you who  know 
>> Smalltalk or Allen, on the whiteboard:
>>
>> // Instead of lambda (a, b, c) { ... }, why not:
>> { |a, b, c| ... } ?
>
> I like the brevity, but having the formals inside the block and in || 
> delimiters seems like it will look weird in an ECMAScript program. For 
> function declarations the parameters go in parentheses, and for calls 
> (presumably also for lambda calls), the arguments go in parens. If  brevity 
> is 
> important, why not lift the lambda syntax from modern pure  functional 
> languages:
>
> \(a, b, c) { ... }
>
> That's backslash as a lambda operator. This has one more character  than your 
> version, but will make formals and parameters look the same  for functions, 
> lambdas, and calls, and will avoid putting the formals  inside the body which 
> I think is confusing and visually hard to scan.
>
> Regards,
> Maciej 


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

Reply via email to