SketchyLISP Reference |
Copyright (C) 2007 Nils M Holm |
<<[length] | [Index] | [list]>> |
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
<<[length] | [Index] | [list]>> |