t3x.org / sketchy / library / letstar.html
SketchyLISP
Reference
  Copyright (C) 2007
Nils M Holm

let*

Conformance: R5RS Scheme

Purpose: Bind values sequentially.
(let* ((a 1) (b a)) b)
equals
(let ((a 1)) (let ((b a)) b))

Arguments:
N - name
V - value
X - expression (body)

Implementation:

(define-syntax let*
  (syntax-rules ()
    ((_ () x)
       (let () x))
    ((_ ((n v)) x)
       (let ((n v)) x))
    ((_ ((n1 v1) (n2 v2) ...) x)
       (let ((n1 v1))
         (let* ((n2 v2) ...) x)))))

Example:

; Example needs pre-loaded image
(let* ((a 1) (b (+ 1 a))) b) --> 2