[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CLARIFICATION: [italics]package arguments.
Somewhere between 1 year ago and 2 years ago, I sent out a proposal to this
list suggesting that the package functions of CLtL section 11.7 fall into
four categories:
(1) those whose argument is documented as "must be a package";
(2) those whose argument is documented as "a package";
(3) those whose argument is documented as a "name" of (or for) a package;
(4) all the rest.
Contrary to what John Diamant suggested, I think that very few functions
fall into category (1). The vast majority seem to be in category (2).
Both Symbolics and Lucid apparently, independently, made a decision to
interpret the documentation of category (2) to mean that any argument
reasonably coercible to a package would in fact be so coerced. That is,
if the documentation goes out of its way to say "must be a package" for
some functions, but doesn't do so for others, then it must be that the
latter ones can be more generous in accepting alternate forms.
This implies, for example, that a string or symbol could be supplied as
the "pacakge" argument to UNINTERN; but the argument to PACKAGE-NICKNAMES
can only be of type package, because it "must be a packge".
There wasn't a lot of discussion back then about these points -- certainly
there was no serious objection to them. Probably the HP folks weren't
receiving the mail then?
-- JonL --