cond
所有条件式的母体是cond,它带有两个新的优点:它允许多重条件式,与每个条件式相关的代码是隐式的progn。它预期在我们需要在一个if中使用另一个if的情况下使用。举例来说,这个伪member函数
CL-USER> (defun our-member (obj lst)
(if (atom lst)
nil
(if (eql (car lst) obj)
lst
(our-member obj (cdr lst)))))
OUR-MEMBER;;等价的cond写法为
CL-USER> (defun our-member2 (obj lst)
(cond ((atom lst) nil)
((eql (car lst) obj) lst)
(t (our-member2 obj (cdr lst)))))
OUR-MEMBER2