Basic Lambdas and Explicit Tail Calls Repackaged

Eugene Lazutkin 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.

Thanks,

Eugene


Michael Day wrote:
> Hi Eugene,
> 
>> Is your lambda proposal competing with 
>> http://wiki.ecmascript.org/doku.php?id=strawman:lambdas (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