3.4 letrec, let, and let*
| (letrec ([id expr-for-let] ...) expr) |
A expr-for-let can be either an expression for a constant definition or a lambda form for a function definition.
| (let ([id expr-for-let] ...) expr) |
Like letrec, but the defined ids can be used only in
the last expr, not the expr-for-lets next to the
ids.
| (let* ([id expr-for-let] ...) expr) |