- Can also be viewed as anonymous procedures.
- Has the following syntax:
(lambda <args> <expressions>)
where <expressions> is one or more, well, expressions. Only the last expression's value is returned.
<args> is your variable definitions, which can take the following forms:
- var - all arguments are put into this single variable (as a list.)
- (var var ... ) - specifies a fixed number of arguments.
- (var var ... . var[n]) - a space-delimited period before the final argument specifies the remaining args (if any) to be put into a list under that variable.
Modifies existing global variables instead of introducing new lexical ones. Values are reset at the end of the expression.
(do ((<var> <init> <step>) ... ) (<test> <expression>) (<command> ... ))