From: ··········@tfeb.org
Subject: Re: spec 3.1.2.1.2 and the lambda exception
Date: 
Message-ID: <cgf6qu$1sc@odah37.prod.google.com>
Peter Seibel wrote:
>
> No, that's backwards. The LAMBDA macro has nothing to do with whether
> you can use a LAMBDA in the CAR position since the macro is only used
> when a LAMBDA expression occurs in a value position (i.e. not the
> CAR).

Yes.  In particular forms like ((lambda ...) ...) were valid long
before the LAMBDA macro was added to the language, which was pretty
late in the standardisation process.

>
> Also the LAMBDA macro was introduced--according to Kent Pitman--in
> order to make it possible to write an ISLISP compatibility library in
> ANSI standard Common Lisp.
>

I think that's correct, it was for ISLISP.

Note that if LAMBDA isn't defined as a macro, then you can't easily
add it to the language: defining a macro called CL:LAMBDA is not
allowed, and shadowing the symbol CL:LAMBDA by MY:LAMBDA and then
defining MY:LAMBDA will break ((LAMBDA ...) ...), since this is now
((MY:LAMBDA ...) ...) which is not legal.  This is precisely because
the rule about ((LAMBDA ...) ...) forms is unrelated to the existence
or otherwise of a macro definition for LAMBDA!

--tim