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

symbol-function of non-functions

The manual seems to imply that fboundp is required to return non-nil
for macros and special forms, while symbol-function is merely allowed
to do so (".. function or MAY be an object representing a special form
or macro..").  Am I reading that right?

In any case, it seem to me that these definitions make it impossible
to tell for sure whether a symbol is a valid argument to APPLY/FUNCALL.
I.e. in implementations which do not keep macros in the function cell,
so that macro-function being true does not imply non-applicability of the
symbol, there is no CL way to find out if there is an applicable definition
regardless of whether there is or isn't a macro definition.

Why not require fboundp be true if and only if there is an applicable
definition.  You could still say (or (macro-function x) (special-form-p x)
(fboundp x)) if you really want to include all possibilities, while there is no
way to implement the more restrictive fboundp in terms of what's currently