2010/05/25

syntax-rules: cond-set!

こうですか。。
;; cond-set!
;; http://people.csail.mit.edu/jhbrown/scheme/macroslides04.pdf
(define-syntax cond-set!
(syntax-rules ()
((_ pred var init)
(if pred
(set! var init)))
((_ pred var1 init1 var2 init2 ...)
(if pred
(begin
(set! var1 init1)
(set! var2 init2) ...)))))
(let ((test 5)
(var 0))
(cond-set! (> test 4)
var 5)
(display var))
(let ((test 5)
(v1 0)
(v2 0))
(cond-set! (> test 4)
v1 1 v2 2)
(display v1)
(display v2))
view raw cond-set!.scm hosted with ❤ by GitHub


追記

修正しました。


プログラミングGauche

0 件のコメント:

コメントを投稿