[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue: LAMBDA-FORM (Version 2)

    Date: 16 Sep 88 15:37 PDT
    From: masinter.pa@Xerox.COM

    ... I think we do well when we at least acknowledge the pros
    and cons in issues,


    and this one isn't as clearcut as the writeup makes it out to be.

I think simply mentioning your concern under aesthetics is enough.
People can then read it and decide if it bugs them.

There are several ways of rationalizing the dual existence of 
(lambda ...) and #'(lambda ...).

One says that you'd have flushed #'(lambda ...) if only you could have
but you couldn't for compatibility reasons. I personally think the
situation is more complicated than this, but I have no doubt that some
people hold this position. In any case, there's no argument with the
fact that if people convert from #'(lambda ...) to (lambda ...), it'll
be easier to tell whether there are places that such a changeover 
cannot be done and why. [Some of the reasons may be philosophical, not

Another argument says that (LAMBDA ...) creates a closure, while
(FUNCTION ...) accesses a function by name -- and that (LAMBDA ...)
is the name of the closure which is created by (LAMBDA ...). So while
they do functionally the same thing, they could be argued to be 
intentionally different (like NOT and NULL -- surely there must have
been dispute over that, but it definitely turned out to be a good
distinction to make). I'm a fan of this argument.

Yet another argument says that since #'(LAMBDA ...) is used so much
and is so cumbersome to type, ``two fewer spaces of indentation'' is
a stronger argument than ``one more function.'' If everyone had a 
LAMBDA (Greek-L) key on their keyboard, you can bet I'd advocate 
allowing (λ ...) as a synonym as well, just on syntactic grounds.
[Well, it looked like a LAMBDA on -my- screen! But I suppose it
looks like BS to the rest of you, huh? :-]