[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: In search of the compatible DEFMACRO
- To: RWK at MIT-MC, MOON at MIT-MC, RMS at MIT-MC
- Subject: Re: In search of the compatible DEFMACRO
- From: Jon L White <JONL at MIT-MC>
- Date: Wed ,4 Feb 81 09:35:00 EDT
- Cc: LISP-FORUM at MIT-MC
How serious is this "compatibility" argument?
Date: 4 February 1981 02:43-EST
From: Robert W. Kerns <RWK at MIT-MC>
Subject: DEFMACRO incompatible
Date: 3 FEB 1981 2349-EST
From: Moon at MIT-AI (David A. Moon)
Subject: DEFMACRO incompatible
It would be unreasonable to change the Lisp machine one, since that would
make DEFMACRO incompatible with DEFUN and all other function-defining
special forms. Why can't DEFMACRO put its declarations in the body where
all other function-defining things put them?
I really don't understand any of this. The options you can supply to
DEFMACRO are like the options you can supply to DEFSTRUCT. Declarations,
at least as I think of them, are information for the compiler.
In addition to Bob's comment about parallels with DEFSTRUCT, I might ask
what DEFUN ever accepts argument syntax like
(DEFmumble FOO (X . Y) (something-to-do))
?? Well DEFMACRO does. The "name" argument, in this example FOO, can
be replaced by a list of name and options; at least it can with
DEFSTRUCT, DEFVST, and the NIL/MacLISP DEFMACRO (but not the LISPM
DEFMACRO). Is there any reason for this gratuitous incompatibility?