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