Lisp递归返回NIL



比方说,我在其他地方有一个预定义的函数"sum"。

我想在做(setq a '(4 3 4))(setq b '(6 10 9)) 之后对两个列表求和

我做(recurse a b)

然而,我一直得到"nil"作为返回值。我用这个递归做错了什么?

Trace目前没有帮助。

(defun recurse (x y)
    (cond
         ( (null x) nil) )
         (t   (sum (car x) (car y) ) (recurse (cdr x) (cdr y)) )
    )
)

您需要确认结果;否则他们会被赶出去。

(defun recurse (x y)
  (cond
    ((null x) nil)
    (t (cons (sum (car x) (car y))
             (recurse (cdr x) (cdr y))))))

最新更新