[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Special Form Question
Date: Fri, 13 Dec 1985 11:03 EST
From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>
To: firstname.lastname@example.org (Stanley Shebs)
Subject: Special Form Question
In-Reply-To: Msg of 12 Dec 1985 21:36-EST from shebs%utah-orion at utah-cs.arpa (Stanley Shebs)
You do come up with the most imaginative questions...
We clearly do not require that
(setf (symbol-function 'foo) (symbol-function 'quote))
somehow makes foo act like quote. Nor do we explicitly require this to
signal an error. The case that you describe is so perverse that I do
not think it is worthwhile for those implementations that use something
like internal FEXPRs in the interpreter to bother checking that they are
being called in a legitimate way.
I think the best position to take is the following: Symbols that name
special forms do have symbol-function slots, just like any other symbol.
Wrong. A CL symbol does not have a function as a "user-visible
component" (i.e., slot; cf. pg. 163). Since CLtL goes out of its way
to point this out, I think it is a good idea to not slip back into
definition by implementation (are any implementtations NOT using
The implementation is allowed, but not required, to put some strange
object in that slot, and we cannot prevent users from getting their
hands on this object if it exists. However, the nature of this object,
if it exists, is completely unspecified and users cannot count on doing
anything useful with it. It is an error to funcall or apply this thing,
If this "strange object" is to be completely unspecified, then the
section of the defintion of special-form-p (pg. 91) that DOES specify
what this strange object "typically" is, should be made an
or to stick it in a symbol-function slot of some symbol and then
evaluate a form with that symbol as the Car.