【入門】Common Lisp その9【質問よろず】
■ このスレッドは過去ログ倉庫に格納されています
0254デフォルトの名無しさん
2012/05/09(水) 23:57:54.48http://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が現在の物と比べてこういう風にあれば、という理想の話だからですよね。?
■ このスレッドは過去ログ倉庫に格納されています