2011/11/17

gauche-library-directory探訪001:gauche/macroutil.scm

gaucheのライブラリをのぞいて、目についたものを書いていくシリーズ(謎

前回



gauche/macroutil.scm

前回の方法で移動したディレクトリのgaucheディレクトリから。macroutil.scmという目を引くファイルがあったのでのぞいてみた。xmac, xmac1というマクロが定義されていた。
$ rlwrap gosh
gosh> (gauche-version)
"0.9.2"
gosh> (use gauche.macroutil)
gosh> (xmac (let1 a 1 (print a)))
(let ((a 1)) (print a))
gosh> (xmac (xmac (let1 a 1 (print a))))
(unwrap-syntax (%macroexpand (let1 a 1 (print a))))
見ての通り%macroexpandマクロの結果がunwrap-syntaxに渡されている。こんなマクロがあったなんて知らなかった。ドキュメントを調べてみたらundocumentedだった。

プログラミングGauche

0 件のコメント:

コメントを投稿