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

DEFVAR



    Date: Mon, 20 Oct 1986  13:45 EDT
    From: "Scott E. Fahlman" <Fahlman@C.CS.CMU.EDU>

	CLtL (p68) is not explicit on its intent about whether (DEFVAR FOO) is
	allowed to or intended to intialize FOO.

    I believe that everyone's intent was that (DEFVAR FOO) should leave FOO
    unbound.  I would have sworn that the manual said this, but I guess it
    doesn't.  

    Given that and the current syntax, there is the question of how the user
    is supposed to supply a doc string for the variable if no initial
    value is wanted.  This was discussed in the past on one or two
    occasions.  I think the general feeling was that SETF of DOCUMENTAITON
    was good enough in the rare case where this functionality is needed.

I personally preferred the
	(defvar foo foo "foo's doc string")
suggestion since that is one declarative form instead of
	(defvar foo)
	(setf (documentation 'foo) "foo's doc string")
on the grounds that the latter is two forms, one declarative and one
procedural, and is more clumsy.  It's not at all clear this is "rare".