[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Category Errors
- To: RPG@SAIL.STANFORD.EDU
- Subject: Re: Category Errors
- From: Danny Bobrow <Bobrow.pa@Xerox.COM>
- Date: 28 Jul 87 14:46 PDT
- Cc: common-lisp-object-system@SAIL.STANFORD.EDU
- In-reply-to: Dick Gabriel <RPG@SAIL.STANFORD.EDU>'s message of 24 Jul 87 14:59 PDT
- Sender: Bobrow.pa@Xerox.COM
Here is a generic function ``in CLOS'':
Add-method generic-function method
And here is how we have ``carefully laid out ... the range of
legal arguments'' to it:
Arguments:
The generic-function argument is a generic function object.
The method argument is a method object. The lambda-list of
the method function must be congruent with the lambda-lists of any
other methods associated with the generic function and with the
lambda-list of the generic function.
(page 2-5, FUNCTIONS)
We should have been more careful about our wording perhaps. Because we
have not yet formalized the notion of protocol, we have had to say the
the first argument is a generic-function. But it could of course be any
object that satisfied the same protocol (could act as the argument to
some set of generic-functions). It is the ability to specialize (make
"is a generic-function object" mean "be an instance of a subclass of
generic-function object") and the ability to create alternative
implementations that is one of the important improvements that object
oriented programming adds to Lisp -- Hence a MAJOR feature. Users who
ask "what's that thing?" have not understood object oriented
programming, and it is up to us to help explain it -- not apologize for
it.