Format: (let ((<var1> <init1>) (<var2> <init2>) . . (<varN> <initN>)) <body>)
Required arguments: 1
((<var> <init>)...): a list of zero or more lists having the form (<var>) or (<var> <init>). <var> must be a symbol appropriate as the name of a variable. <init> may be any LISP expression.
Optional arguments: arbitrary
<body>: any sequence of zero or more LISP expressions.
The <var>'s are established as local variables for the expressions in <body>. If a <var> is not accompanied by an <init> expression, it is initially bound to NIL. Otherwise, <init> is evaluated and assigned as the value of <var>. let evaluates all the expressions in <body> and returns the value of the last, or NIL if there are none.
Examples:
>(let ((a)
(b))
(and (not a) (not b)))
T
>(let ((a 3)
(b 4))
(setf a (+ a b))
(setf b (+ a b))
(+ a b))
18
© Colin Allen & Maneesh Dhagat