Next: , Previous: Ordinary Lambda Lists, Up: Lambda Lists


3.4.2 Generic Function Lambda Lists

A generic function lambda list is used to describe the overall shape of the argument list to be accepted by a generic function. Individual method signatures might contribute additional keyword parameters to the lambda list of the effective method.

A generic function lambda list is used by defgeneric.

A generic function lambda list has the following syntax:

lambda-list ::=({var}*                  [&optional {var | (var)}*]                  [&rest var]                  [&key {var | ({var |             (keyword-name var)})}* pt [&allow-other-keys]])                

A generic function lambda list can contain the lambda list keywords shown in Figure 3–14.

  &allow-other-keys  &optional    
  &key               &rest        

  Figure 3–14: Lambda List Keywords used by Generic Function Lambda Lists

A generic function lambda list differs from an ordinary lambda list in the following ways:

Required arguments
Zero or more required parameters must be specified.
Optional and keyword arguments
Optional parameters and keyword parameters may not have default initial value forms nor use supplied-p parameters.
Use of &aux
The use of &aux is not allowed.