2012-02-20 4 views
1

を返します。私はあらかじめ定義された関数 'sum'を別の場所に持っています。Lisp再帰はNIL

私は(setq a '(4 3 4))(setq b '(6 10 9))

ないと私は(recurse a b)を行った後二つのリストを合計します。

しかし、私は戻り値として 'nil'を取得し続けます。この再帰で何が間違っていますか?

トレースは現時点では役に立ちません。

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

    ) 
) 
+0

あなたは数字を追加して結果を破棄しています。 –

答えて

3

結果を確認する必要があります。さもなければそれらは投げ出される。

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

不注意な間違い..ありがとう! – CyberShot

関連する問題