[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comments on comments on Chapter 1
Date: Thu, 22 Oct 87 14:56:04 PDT
I think that there's no qualitative difference between the argument
:OVERWRITE to the :IF-EXISTS parameter of OPEN and the argument VARIABLE
to the second parameter of DOCUMENTATION.
An important difference is that the latter is extensible and the former is not.
CLtL doesn't say DOCUMENTATION is extensible, but of course that's a bug, since
application developers are just as likely as Lisp implementors to develop new
types of named things to which they would like to attach documentation. Any
time multiple people are adding names to a namespace, we'd like to use packages
to organize that namespace. (The fact that package names are a flat namespace
rather than a hierarchy is an obvious compromise, or defect, here.)
Yet, in Common Lisp, one of
these is required to be a keyword and the other is required to be in the
LISP package. I think that there are a lot of these kinds of symbols
that should all have been keywords.
There are probably some mistakes of this type in Common Lisp, but in the
case of DOCUMENTATION, I think it's right not to use keywords. However,
I think the word should have been DEFVAR (as it was in Zetalisp, from
which Common Lisp copied this feature) rather than VARIABLE, to avoid
introducing a new symbol unnecessarily.
The original subject was whether the name of the standard method
combination type should be STANDARD or :STANDARD. I think the above
discussion doesn't really reflect on this, since we aren't proposing
to make all names of method combination types be keywords, so I'd
be content with either of those names.