# let*

`(`let*` ((NAME EXPRESSION) ...) EXPRESSION)`
The `let*` expression is similar to the `letrec` expression, except that the scope of the bindings is different. Like `letrec`, the body expression may refer to the bindings created by the `let*`. However, each binding expression (those on the right-hand sides) can refer to the preceding bindings. In addition, a name can be bound multiple times, in which case each use sees the closest preceding binding. To illustrate this, consider the following expressions and its result:

    (let ((a 16)
          (a (+ a 1))
          (a (+ a 2)))
      a)
    19

Intermediate Student with Lambda Language