2010/05/25

syntax-rules: let*

こうかな。
;; let*
(define-syntax letstar
(syntax-rules ()
((_ () body ...)
(let ()
body ...))
((_ ((var init)) body ...)
(let ((var init))
body ...))
((_ ((var1 init1)(var2 init2) ...) body ...)
(let ((var1 init1))
(letstar ((var2 init2) ...) body ...)))))
(letstar ()
(display 'a))
(letstar ((x 1))
(display 'a)
(display x))
(letstar ((x 1)
(y 2)
(z (+ x y)))
(print z))
view raw letstar.scm hosted with ❤ by GitHub


プログラミングGauche

0 件のコメント:

コメントを投稿