[Chicken-users] macro systems and chicken (long) を読んだ(via http://fixedpoint.jp/)。R6RS で Scheme 標準のマクロシステムは syntax-case と syntax-rules になったが Chicken では他の様々なマクロシステムも使うことができる。以下要約みたいなもの。 背景マクロシステムには完全に直交するふたつの側面がある。健全である(Hygienic)か健全でないか、と、高レベルであるか低レベルであるか、ということである。健全であるというのは自動的に識別子の衝突を回避する仕組みがあるかどいうかということであり、低レベルというのは、入力となるソースコードを Lisp の基本関数を使って直接操作することを指し、高レベルというのは syntax-rules のように専用のパターン言語を使って構造を