2012-02-20 75 views
1

说,我在其他地方有一个预定义的函数'sum'。Lisp递归返回NIL

我要总结两个列表我做(setq a '(4 3 4))(setq b '(6 10 9))

我做(recurse a b)后。

但是,我一直得到'零'作为返回值。我在做什么这个递归错了?

跟踪目前没有帮助。

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

    ) 
) 
+0

您正在添加数字并丢弃结果。 – 2012-02-20 01:04:36

回答

3

您需要考虑结果;否则会被抛出。

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

不小心的错误..谢谢! – CyberShot 2012-02-20 01:13:16