無 compile の呪い

もう許して…

(letrec-syntax
    ((qquote (syntax-rules () ((qquote arg) `(arg ,arg))))
     (id (syntax-rules () ((id arg) arg)))
     (macro (syntax-rules ()
              ((macro arg)
               (qquote arg))
              )))
  (let ((marco? 'polo))
    (macro marco?)))

--> (marco? polo)

Expander は再帰 macro を展開するときに各種 quote と user 定義 macro を含む全構文を認識しないといけないらしい…

eval まで refactor するの? それは嫌っていうか bytecode 化した方が早いし。

手段が無いでもないけど、絶対何かを忘れる。