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)
|