On Jan 12, 2012, at 2:23 PM, François REMY wrote:
> If not (as it seems to me), it means that a block lambda will not be used as
> a statement by itself. If it's the case, it should defined as an Expression
> only, where there's no anonymous block to conflict the syntax. That solution
> has been chosen for object notation in the past. That way,
>
> function() {
> {
> (a, b)
> a.add(b)
> }
> }
>
> would still be an anonymous block where
>
> function() {
> asyncAction(..., { (a, b) a.add(b); } }
> }
>
> would be a block lambda as an argument of an async function. No semantic
> change for an identical syntax, in regards to strict ES5.
So simple, and so brilliant. I love it!
I must say, the parens look much prettier to me, and they're of course more
consistent with JS precedent.
It does help to write a reasonable chunk of code to compare syntaxes for uses
of a feature "in the wild." Does some enterprising es-discusser wanna take a
big JS program with a bunch of little anonymous functions, swap them out with
block lambdas, and make two gists with the two different syntaxes? That'd be
super helpful.
> And since I still continue to hope we'll ditch the unprefixed anonymous block
> in some future revision of ES, that very small edge case could vanish at the
> same time.
I don't understand what you're referring to here -- what do you mean by
"unprefixed anonymous block?"
> Does it seems possible/acceptable?
Lovely.
Dave
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss