Symbols Naming Both Lexical and Dynamic Variables (ANSI and GNU Common Lisp Document)

Next: Conses as Forms, Previous: Constant Variables, Up: The Evaluation Model

#### 3.1.2.6 Symbols Naming Both Lexical and Dynamic Variables

The same symbol can name both a lexical variable and a dynamic variable, but never in the same lexical environment.

In the following example, the symbol `x` is used, at different times, as the name of a lexical variable and as the name of a dynamic variable.

     (let ((x 1))            ;Binds a special variable X
       (declare (special x))
       (let ((x 2))          ;Binds a lexical variable X
         (+ x                ;Reads a lexical variable X
            (locally (declare (special x))
                     x))))   ;Reads a special variable X
    ⇒  3