[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