ID 変わってるかもですが 183 です。

>>186
内部的に特殊形式を利用しているので、申し訳なくも私がもともと期待していたものとは違うのですが、
特殊形式であっても独自拡張可能というのは面白いですね。

私は主に Python や C/C++ の世界に住んでいるので、例えば条件付トレースなど、
可能であれば条件式によって引数を評価せずに処理をしたいときにあきらめてしまうことがあります。
(書かなくてもわかるかとも思いますが) Python の例で言えばこんな感じです。
def conditional_trace(ctrl, msg):
  if ctrl: print msg
  return
conditional_trace(True, heavy_message_generate())

そもそも Python の世界なんて、コストは大して気にしない場合が多いのですが、
貧乏性でして。あと heavy_message_generate に副作用があったりすると困ります。
こういう意味では C/C++ のプリプロセッサのほうが自由度が高いですね。言語の外にあるだけあって。

条件後出しで申し訳ないです。でも、macro の威力がわかってとても良かったです。ありがとうございます。

ちなみに、when もマクロであって、マクロの展開では評価されないことに依存したものですね。
基礎的な機能であっても、special form をたくさん作るよりはマクロで構文糖衣するということで、これも面白いです。