Info Node: (emacs-lisp-intro.info)Uninitialized let Variables
(emacs-lisp-intro.info)Uninitialized let Variables
Uninitialized Variables in a `let' Statement
--------------------------------------------
If 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'.