Basic Lambdas and Explicit Tail Calls Repackaged

Eugene Lazutkin eugene.lazutkin at
Sun Dec 7 16:33:54 PST 2008

I agree with you: lambdas in 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 
>> (gave me by 
>> Brendon)?
> 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 
> JavaScript programmers or implementors.
> "A well-tested feature of programming languages since time immemorial."
> JavaScript already has higher-order functions, and much fewer languages 
> 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,
> Michael

More information about the Es-discuss mailing list