let* introduces lexical bindings sequentially, and is the sequential counterpart to let.
Syntax
(let* (⟨binding⟩...)
⟨body⟩...)
;; ⟨binding⟩ := ⟨declare-form⟩
;; | (⟨var⟩ ⟨expr⟩)
;; | ((values ⟨var⟩...) ⟨expr⟩)
Semantics
let*binds non-recursively and sequentially top-to-bottom.- Bound variables may be declared with
declare. - Multiple values may be destructured with
values. ⟨body⟩forms an implicitprogn.
Example
(let* ((x 1)
(y (+ x 1)))
(+ x y))