On Thu, Jan 12, 2012 at 11:23 PM, François REMY <fremycompany_...@yahoo.fr> wrote: > Am I wrong if I say there not a bigger issue with block lambda than with the > current object notation on the matter? > > I mean, does that code mean anything useful? > > function() { > {|a,b| a+b}; > } > > 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. > > The case where you would like to use a block lambda as a stament can be > resolved by adding parenthesis, like with the current object notation. 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. > > Does it seems possible/acceptable?
Looks like a great idea to me! _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss