return when desugaring to closures

David Herman dherman at
Thu Oct 9 16:28:50 PDT 2008

> I argued for "let" desugaring to "function" and I understand the
> problems with "arguments", "this" and "return". In light of the
> "lambda" idea below and that "let" could desugar to that more
> intuitively (i.e. Tenent's principle) to "lambda", I think what I was
> really asking/arguing for was an axiomatic definition of the
> language.
> That is, "let" should should desugar to something more fundamental.

Exactly -- and from our standpoint, we weren't arguing that "let" *shouldn't* desugar to something more fundamental, just that 'function' wasn't the right primitive. My intention was for 'lambda' to be the "dialectical synthesis" to our debate. Glad to hear it has appeal.

> Please call it "lambda"! :)

Knowing full well that we've already had long, silly, drawn-out, painful bike-shedding sessions on alternative names for 'lambda' on es-discuss, and at the risk of picking at old wounds... <anticipatory wince>

How would people feel about the declaration form being 'define' instead of lambda? As in:

    define const(x) {
        lambda(y) x

Maybe I'm just accustomed to Scheme, but it looks awkward to me for the declaration form to be called lambda. Dylan also used 'define'.


More information about the Es-discuss mailing list