Michael Day wrote: > Hi Brendan, > >> Please read >> >> http://wiki.ecmascript.org/doku.php?id=strawman:lambdas > > There is a lot of discussion over whether it is necessary to introduce > syntax sugar instead of a "lambda" keyword, but is there any remaining > controversy over the semantics of lambdas in JavaScript, or is that > considered settled at this point?
Semantic or abstract-syntax issues that are not settled include: - how to avoid the hazard pointed out by Mark Miller where a value can be unintentionally leaked from the tail position of a lambda; - whether the primitive form of a lambda has a block, statement, or expression as its body; - some details of the desugaring of functions to lambdas, for example how to handle hoisting of 'var' declarations; - the interaction of 'let'/'const' declarations with lambdas, especially if the former do not have consistent semantics for all scopes; - whether lambdas are mutable, immutable, or can be either; - how 'break', 'continue', and 'return' are bound (which interacts with other proposals such as <http://wiki.ecmascript.org/doku.php?id=strawman:return_to_label>, and how/whether user-defined control structures are to be supported); - the precise semantics of calling a lambda that contains a 'break' or 'continue' to a loop or statement that has already completed, or a 'return' from a function execution that has already completed; - how much of the feature set proposed on the strawman page (for example default and destructured arguments) is supported by the primitive form of a lambda, vs by desugaring. The strawman page has suggested answers for some of these issues, but not all of them, and the answers given on that page are not fixed in stone. -- David-Sarah Hopwood _______________________________________________ Es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

