let
StatementIf you do not bind the variables in a let
statement to specific
initial values, they will automatically be bound to an initial value of
nil
, as in the following expression:
(let ((birch 3) pine fir (oak 'some)) (message "Here are %d variables with %s, %s, and %s value." birch pine fir oak))
Here, the varlist is ((birch 3) pine fir (oak 'some))
.
If you evaluate this expression in the usual way, the following will appear in your echo area:
"Here are 3 variables with nil, nil, and some value."
In this example, Emacs binds the symbol birch
to the number 3,
binds the symbols pine
and fir
to nil
, and binds
the symbol oak
to the value some
.
Note that in the first part of the let
, the variables pine
and fir
stand alone as atoms that are not surrounded by
parentheses; this is because they are being bound to nil
, the
empty list. But oak
is bound to some
and so is a part of
the list (oak 'some)
. Similarly, birch
is bound to the
number 3 and so is in a list with that number. (Since a number
evaluates to itself, the number does not need to be quoted. Also, the
number is printed in the message using a ‘%d’ rather than a
‘%s’.) The four variables as a group are put into a list to
delimit them from the body of the let
.