可以'cond'完全取代'if'语句吗?

Gre*_*ano 3 lisp common-lisp

我知道'cond'是基于'if',但是'cond'可以做'一切',如果可以吗?谢谢

Mat*_*ard 8

是.有条件的

(if x y z)
Run Code Online (Sandbox Code Playgroud)

使用if可以转换为等效条件使用cond:

(cond ((x y)
       (t z)))
Run Code Online (Sandbox Code Playgroud)


Wil*_*ung 5

"if"很可能被实现为围绕"cond"的宏."cond"在这里是实际的"原始",而不是"if".

  • 不是根据CLHS,其中`cond`被列为宏,而`if`被列为特殊运算符.这也与Scheme一致,其中`cond`是`if`上面的一个宏. (5认同)