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 es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss