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

[no subject]



     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)