Common Lisp the Language, 2nd Edition
Next: Keyword Arguments in
Up: Generic Functions and
Previous: Agreement on Parameter
These
rules define the congruence of a set of lambda-lists, including the
lambda-list of each method for a given generic function and the
lambda-list specified for the generic function itself, if given.
- Each lambda-list must have the same number of required
parameters.
- Each lambda-list must have the same number of optional
parameters. Each method can supply its own default for an optional
parameter.
- If any lambda-list mentions &rest or &key, each
lambda-list must mention one or both of them.
- If the generic function lambda-list mentions &key, each
method must accept all of the keyword names mentioned after &key,
either by accepting them explicitly, by specifying
&allow-other-keys, or by specifying &rest but not &key.
Each method can accept additional keyword arguments of its own. The
checking of the validity of keyword names is done in the generic
function, not in each method. A method is invoked as if the keyword
argument pair whose keyword is :allow-other-keys and whose value
is t were supplied, though no such argument pair will be passed.
- The use of &allow-other-keys need not be consistent
across lambda-lists. If &allow-other-keys is mentioned in
the lambda-list of any applicable method or of the generic function,
any keyword arguments may be mentioned in the call to the
generic function.
- The use of &aux need not be consistent across methods.
If a method-defining form that cannot specify generic function options
creates a generic function, and if the lambda-list for the method
mentions keyword arguments, the lambda-list of the generic function
will mention &key (but no keyword arguments).
Next: Keyword Arguments in
Up: Generic Functions and
Previous: Agreement on Parameter
AI.Repository@cs.cmu.edu