[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Special Form Question
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
function cells?).
All right, on page 163 it says that Symbol-function is not necessarily a
slot in the symbol object, but on page 90 it says that symbol-function
returns an object that "may be a function or may be an object
representing a special form or macro". However, it is an error if you
try to invoke an object of the latter kind as a function. I think that
this is consistent with the behavior I suggested, though I should not
have referred to Symbol-Function as fetching something from a slot.
If we decide to go with this description of the required behavior, some
wording on page 9 needs to be clarified. It says that a error IS
SIGNALLED if you do Symbol-Function on a symbol with no funciton
definition, but then seems to indicate that this error would not be
signalled if the definition is a macro or special form. Alternatively,
we could specify that the error is signalled unless the symbol defines a
function in the strict sense, but if we do that a lot of implementaitons
would have to be fixed in ways that might hurt efficiency.
-- Scott