日曜プログラミング

休日趣味でやってるプログラミング関連記事をダラダラと

Clojure シンタックスクォートマクロで名前空間修飾を回避する

Clojure のシンタックスクオートを使用したマクロでは、マクロ展開時シンボルに名前空間が修飾されて名前衝突を回避するようになっている。多分大部分はこれで問題ないんだろうけど、敢えて修飾したくない場合は以下のように書くとマクロ展開でシンボルそのまま渡るようになる。

~'hoge

シンボルの補足を意図的に起こすものであるとか、アナフォリックマクロで利用されると言うがイマイチピンとこない。

プログラミング Clojure が手元にないのでこの事が書いてあったかどうか忘れた。