2010/06/02

Scheme マクロのデバッグ4種

マクロのデバッグ方法をいくつか。(* 追記あり)

expander

expander を使うのがオーソドックスみたいですね。
Gauche なら Common Lisp と同じく、macroexpand, macroexpand-1 などがあります。


mac

On Lisp よろしく mac マクロを定義しておくと便利そうです。


リーダーマクロ

Gacuhe #?= リーダーマクロはどうでしょう?うーん。


quote

これは初見。任意のパターンの展開部分を quote しちゃう。これは意外と便利かも知れません。
*** Debugging trick
One very easy debugging trick is to wrap the template with a quote:


複数のパターンがある場合に、特定のパターンだけ quote してみるとか・・・。


マクロ初心者な私の知る限りこんなところでしょうか・・・。

追記

gaucheにはmac相当の%macroexpandがあるみたいです。さらにsyntax-rulesマクロなどをmacroexpandした際の表示を見やすくするunwrap-syntaxも便利です。


追記



The Reasoned Schemer

0 件のコメント:

コメントを投稿