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

posted @ 2013-01-03 15:52  flowjacky  阅读(362)  评论(0编辑  收藏  举报