skySchemeは自前のexpanderで伝統的なマクロを実装していたが、冷静に考えるとそのためだけにexpanderを持つのは無駄なので可能な限りR6RS側のmacroを使うことにする。(moshのcompilerではdefine-macroを使っているが、moshの中で実装を見つけられなかった。) R6RSのmacroはsyntax-caseと呼ばれていて、伝統的なマクロとはだいぶ趣が異なる。syntax-caseのリファレンス実装はSRFI-93で提供される。 syntax-caseで書かれたdefine-macroを探してくると : https://webmail.iro.umontreal.ca/pipermail/gambit-list/2007-March/001195.html - Marc Feeley(Gambitの作者)による実装 以下のコードはこれを元にしている。