eintr: Uninitialized let Variables

 
 3.6.3 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’.