Basic Lambdas and Explicit Tail Calls Repackaged
eugene.lazutkin at gmail.com
Sun Dec 7 16:33:54 PST 2008
I agree with you: lambdas in
http://wiki.ecmascript.org/doku.php?id=strawman:lambdas look useless
too. They don't have a clearly articulated vision nor compelling use
cases (at least not in the document).
I am for the lambda facility as a short notation for small functional
snippets, but both proposals do nothing for this use case. So far it all
looks like "lambdas are cool --- we can do lambdas too!" kind of exercise.
Michael Day wrote:
> Hi Eugene,
>> Is your lambda proposal competing with
>> http://wiki.ecmascript.org/doku.php?id=strawman:lambdas (gave me by
> It is a different proposal, I think it helps to have more than one
> proposal, in order to clearly see the different trade offs involved.
>> Why would anybody want to use a lambda instead of a function? 2
>> characters less to type? What is the compelling reason, the super idea
>> behind the lambda besides confusing programmers, and more things to
>> implement by compiler writers?
> Well, that's a really good question, as lambdas don't sound sufficiently
> different to regular functions in this proposal to be worth doing.
> The lambda proposal on the wiki gives the following "Why" reasons:
> "A simpler primitive underlying the language’s first-class functions."
> Removing 'this' and 'arguments' also gives a simpler primitive, but is
> it enough to bother with?
> "Supports defining other features via desugaring without breaking
> equivalence with implicit features (arguments, this, return) — this is
> sometimes described as Tennent’s Correspondence Principle [ 1, 2 ]."
> Not clear what this means, or what benefit it brings to either
> "A well-tested feature of programming languages since time immemorial."
> have lambdas where a return returns from the enclosing function.
> "Supports tail calls more naturally than function."
> I don't see what's unnatural about explicit tail calls in functions.
> "Simple, composable features like lambda are useful for other language
> features defined via desugaring/compiling other languages to ES/macros"
> What do lambdas in the wiki have that lambdas-as-functions-without-this
> do not have? They seem to have more complexity, but I can't see how they
> are significantly more useful.
> Best regards,
More information about the Es-discuss