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

[not about] Constant Functions



    Date: Sun, 8 May 88 00:07:09 EDT
    From: Barry Margolin <barmar@Think.COM>

       Date: Sat, 7 May 88 03:13:06 PDT
       From: Jon L White <edsel!jonl@labrea.stanford.edu>

       CLtL, p162 speaks of the VALUES declaration; it says nothing at all like
       that.

That's a type-specifier, not a declaration.

    Sorry, I was thinking of Symbolics's VALUES declaration.  They allow:

    (defun fun (arg)
      (declare (values name1 name2))
      ...)

    Symbolics has a large number of declarations that specify aspects of
    the function being defined.  However, I now realize that none of the
    standard CL declarations behave like this.

Note that it would be wrong to say that such declarations are not
lexically scoped.  The declarations are attached to a particular binding
of the name "fun" to a function definition, and they have the same scope
as that binding.  Another way of saying roughly the same thing is that
the definitions are attached to the function object, not to the function
name.  This is a better way to think of it, since such declarations work
in LAMBDA expressions as well, which don't have names.

One could introduce a different word for this type of declaration,
instead of using DECLARE, but I think that would be more confusing than
enlightening.