#

## 3.4 Lambda Lists

A lambda list is a list that specifies a set of parameters (sometimes called lambda variables) and a protocol for receiving values for those parameters.

There are several kinds of lambda lists.

    Context                                      Kind of Lambda List
    defun form                                   ordinary lambda list
    defmacro form                                macro lambda list
    lambda expression                            ordinary lambda list
    flet local function definition               ordinary lambda list
    labels local function definition             ordinary lambda list
    handler-case clause specification            ordinary lambda list
    restart-case clause specification            ordinary lambda list
    macrolet local macro definition              macro lambda list
    define-method-combination                    ordinary lambda list
    define-method-combination :arguments option  define-method-combination arguments lambda list
    defstruct :constructor option                boa lambda list
    defgeneric form                              generic function lambda list
    defgeneric method clause                     specialized lambda list
    defmethod form                               specialized lambda list
    defsetf form                                 defsetf lambda list
    define-setf-expander form                    macro lambda list
    deftype form                                 deftype lambda list
    destructuring-bind form                      destructuring lambda list
    define-compiler-macro form                   macro lambda list
    define-modify-macro form                     define-modify-macro lambda list

Figure 3-10. What Kind of Lambda Lists to Use

The next figure lists some defined names that are applicable to lambda lists.

    lambda-list-keywords  lambda-parameters-limit

Figure 3-11. Defined names applicable to lambda lists

## 3.4.1 Ordinary Lambda Lists

## 3.4.2 Generic Function Lambda Lists

## 3.4.3 Specialized Lambda Lists

## 3.4.4 Macro Lambda Lists

## 3.4.5 Destructuring Lambda Lists

## 3.4.6 Boa Lambda Lists

## 3.4.7 Defsetf Lambda Lists

## 3.4.8 Deftype Lambda Lists

## 3.4.9 Define-modify-macro Lambda Lists

## 3.4.10 Define-method-combination Arguments Lambda Lists

## 3.4.11 Syntactic Interaction of Documentation Strings and Declarations

Copyright 1996-2005, LispWorks Ltd. All rights reserved.