[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[no subject]
- To: nttlab!Common-Lisp@SU-AI
- From: yuasa@kurims.kurims.kyoto-u.junet
- Date: Wed, 30 Apr 86 18:19:24 pdt
The following is the text, verbatim, of the other handout I made
available this past Monday at the Common Lisp meeting.
----------------------------------------------------------------------
Corrections to first printing of Common Lisp: The Language
Thanks to the many people who noticed these problems, and
especially to Dr. Masayuki Ida, who found over fifty of them.
-- Guy Steele, December 1985
.........
87 Rewrite the second sentence in the description of FUNCTION as
follows: "In particular, if fn is a symbol, then the functional
definition of that name is returned, which is that established by the
innermost lexically enclosing FLET, LABELS, or MACROLET construct, if
there is one, or else the global functional definition of the symbol
(see SYMBOL-FUNCTION)."
.........
Is this sentense really intended to require that (FUNCTION FOO)
in the body of (MACROLET ((FOO <args> . <body>)) ...) should return
the macroexpansion function of the local macro FOO? For example,
should
(FUNCALL (MACROLET ((FOO (X) `(LIST ,X ,X)))
(FUNCTION FOO))
'(FOO (BAR)))
evaluate to (LIST (BAR) (BAR)) ? If this is really the case, then
what are the merits of this mechanism? For your information, Kyoto
Common Lisp just ignores local macro definitions when evaluating FUNCTION
special forms. The version of Spice Lisp which I received in April 1985
causes an error if <symbol> in (FUCNTION <symbol>) names a local macro.
-- Taiichi
(one of the implementors of Kyoto Common Lisp)
(nttlab!kurims!yuasa@su-shasta.arpa)