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

Macros -> declarations

    Date: Mon, 6 May 1985  21:56 EDT
    From: "Scott E. Fahlman" <Fahlman@CMU-CS-C.ARPA>

    The business about wanting to be able to shadow LISP:DECLARE seems
    pretty weak to me.  
He's hardly shadowing Lisp:declare....
			It seems reasonable to me that if people want to
    redefine the essential structural symbols like DECLARE out from under
    Common Lisp, then they should either be willing to say something like
    LISP:DECLARE to get the old version or do a source-level transformation
    on the surrounding form.  There are a number of other structural
    symbols, in addition to DECLARE, that are known to the interpreter, and
    we can't very well macroexpand everything in sight in order to see if we
    have one of these.

    -- Scott

I don't buy this as a counterargument to what KMP said.  Subsitute "DEFUN"
for "DECLARE" in the above paragraph.    You can only define functions with
DEFUN -- (generic)Lisp provides no other way.  Yet, we have the whole
top-level macro mechanism to allow you to define application-language-embedded
function-definers, calls to whom are expanded at top-level to ultimately
produce DEFUNs.  DECLARE is the only way to declare things lexically.
The same arguments apply.