Lisp Scheme Part18
■ このスレッドは過去ログ倉庫に格納されています
0289デフォルトの名無しさん
2007/10/03(水) 21:40:00gaucheでマクロを展開した結果を確認したいのですが、
macroexpandで完全に(展開できなくなるまで)展開されません。
例えば
(define-syntax my-let
(syntax-rules ()
((_ () . body)
(begin . body))
((_ ((var expr) . binds) . body)
(let1 var expr (my-let binds . body)))))
(macroexpand '(my-let ( (b 3)) (list a b)))
;;=> (#<identifier gauche#let> ((b 3)) (#<identifier user#my-let> () (list a b)))
という感じです。my-letが1段階しか展開されません。
完全に展開した結果を得るにはどうしたらよいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています