http://www.asahi-net.or.jp/~kc7k-nd/onlispjhtml/anaphoricMacros.html
|Norvigは,ifを次のように再定義したら便利だろうと述べたが,

|(defmacro if (test then &optional else)
| `(let ((that ,test))
| (if that ,then ,else)))

|参照透明性を侵すという観点からこのマクロを却下している.

|しかし問題は組み込みオペレータを再定義したことに因るもので,アナフォラを使ったことに因るのではない.
|上の定義のb)節は,式が「任意のコンテキスト内」で必ず同じ値を返すことを要求している.


この文章がどういう事なのか分かりません。参照透明性を侵すとありますが具体的にどのような場合に侵されるのでしょうか。
「上の定義のb)節は,式が「任意のコンテキスト内」で必ず同じ値を返すことを要求している.」とはどういう事なのでしょうか。
b節とは(if that ,then ,else)の事?
また上記のdefmacro ifは無限ループに陥りますが、あくまでifが現在の物と比べてこういう風にあれば、という理想の話だからですよね。?