2
私は 'cond'が 'if'に基づいていることを知っていますが、 'do'ができれば 'cond'は 'すべて行う'ことができますか? ありがとう'cond'は 'if'文を完全に置き換えることはできますか?
私は 'cond'が 'if'に基づいていることを知っていますが、 'do'ができれば 'cond'は 'すべて行う'ことができますか? ありがとう'cond'は 'if'文を完全に置き換えることはできますか?
はい。 if
を使用して、任意の条件
(if x y z)
はcond
を使用して同等の条件に変換することができる。
(cond ((x y)
(t z)))
ウェル「条件」の周りのマクロとして実装することができる「IF」。 "cond"は実際の "プリミティブ"で、 "if"ではありません。
CLHSではなく、 'cond'がマクロとしてリストされ、' if'が特殊演算子としてリストされています。これはSchemeと同じです。ここで 'cond'は' if'のマクロです。 –
Chris:CL(この質問にタグ付けされていた)ではtrueですが、必ずしもすべての方言である必要はありません。 McCarthyのオリジナルでは、CONDは7つのプリミティブのうちの1つでした(http://www.paulgraham.com/rootsoflisp.html)。もちろん、どちらがプリミティブで、どれがマクロであるかは重要ではありません。 – Ken