...research.
This problem set was developed by Hal Abelson, Greg McLaren, and David LaMacchia. It draws on a Scheme implementation of Oaklisp by McLaren and a Scheme implementation of Dylan by Jim Miller. The organization of the generic function code follows the presentation of the Common Lisp Object System (CLOS) in The Art of the Metaobject Protocol, by Gregor Kiczales, Jim des Rivières, and Dan Bobrow (MIT Press, 1991).
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...<number>.
Keep in mind that this use of brackets is a naming convention only-like naming predicates with names that end in question mark.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...inputs.
See the code (below) for a definition of ``most specific method.'' What ``most specific method'' ought to mean is something that language designers argue about.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...define-generic-function.
Omitting lambda takes away our ability to have unnamed procedures, as we do in Scheme. You might want to think about how to add such a feature to TOOL.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...procedure.
The dot before the word ``body'' signifies that we can put more than one expression in the body-just as with ordinary Scheme procedures.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
...class.
Java also enforces the restriction that a class has at most one superclass. On the other hand, Java includes a different mechanism called interfaces that provides some of the capabilities associated with multiple superclasses.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Hal Abelson
Sat Apr 11 16:28:40 EDT 1998