Lisp рекурсия возвращает NIL - PullRequest
1 голос
/ 20 февраля 2012

Скажите, что у меня есть предопределенная функция 'sum' в другом месте.

Я хочу суммировать два списка после того, как я (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)) )

    )
)

1 Ответ

3 голосов
/ 20 февраля 2012

Вам нужно подвести итоги;в противном случае они выбрасываются.

(defun recurse (x y)
  (cond
    ((null x) nil)
    (t (cons (sum (car x) (car y))
             (recurse (cdr x) (cdr y))))))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...