LISP Scheme Part5
■ このスレッドは過去ログ倉庫に格納されています
0771デフォルトの名無しさん
NGNG(define-syntax while
(syntax-rules ()
((while test break continue body1 body2 ...)
(block break
(let loop ()
(cond (test
(block continue
body1 body2 ...)
(loop))))))))
上のページにあった break continue 付きの while マクロを改造して break
と continue を引数で渡さなくてもいいようなマクロを define-syntax で書
くにはどうするんですか? define-macro だったら
(define-macro (while2 test . body)
`(block break
(let _loop ()
(cond (,test
,@body
(_loop))))))
でいいと思うんですが。(gensym してないので手抜き)
;; block は上のページに載っているマクロです。
■ このスレッドは過去ログ倉庫に格納されています