【发布时间】:2013-09-22 00:46:02
【问题描述】:
我想不出一种方法来搜索列表以确保它包含所有整数。如果有非整数数据,我想立即返回nil,如果没有,则继续我的功能。
我试图创建的递归函数将cons 和car 与列表的cdr。通过我所做的尝试,我无法返回nil。我只能忽略非整数数据。例如,(add-1-all '(1 2 3 a)) 将在每个数字加一后返回 (2 3 4)。
(defun add-1-all (L)
(if (null L)
L
(if (integerp (car L))
(cons (+ (car L) 1) (add-1-all (cdr L)))
nil)))
我确实知道这样做是有缺点的,因为递归正在添加到列表中。
【问题讨论】:
标签: lisp common-lisp