A destructuring lambda list is used by destructuring-bind.
Destructuring lambda lists are closely related to macro lambda lists; see Macro Lambda Lists. A destructuring lambda list can contain all of the lambda list keywords listed for macro lambda lists except for &environment, and supports destructuring in the same way. Inner lambda lists nested within a macro lambda list have the syntax of destructuring lambda lists.
A destructuring lambda list has the following syntax:
reqvars | ::= | {var | !lambda-list}* |
optvars | ::= | [ &optional {var |
({var | !lambda-list} [init-form [supplied-p-parameter]])}*]
|
restvar | ::= | [ {&rest | &body} {var | !lambda-list}]
|
keyvars | ::= | [&key {var |
({var |
(keyword-name {var | !lambda-list})}
[init-form [supplied-p-parameter]])}*
[&allow-other-keys ]]
|
auxvars | ::= | [ &aux {var | (var [init-form])}*]
|
envvar | ::= | [ &environment var]
|
wholevar | ::= | [ &whole var]
|
lambda-list | ::= | (!wholevar !reqvars !optvars !restvar !keyvars !auxvars) |
(!wholevar !reqvars !optvars . var)
|