| 
    Allegro CL | 
 ANSI Common Lisp  3.4.5 Destructuring Lambda ListsA destructuring lambda list is used by destructuring-bind.Destructuring lambda lists are closely related to macro lambda lists; see Section 3.4.4 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 | 
 
optvars::= [&optional {var | 
                         (var [init-form [supplied-p-parameter ]])}*] 
restvar::= [{&rest | &body} {var | 
                          
keyvars::= [&key {var | 
                         ({var | (keyword-name var)} 
                         [init-form [supplied-p-parameter ]])}* 
auxvars::= [&aux {var | (var [init-form ])}*] 
envvar::= [&environment var] 
wholevar::= [&whole var] 
lambda-list::= ( 
  |