【发布时间】:2011-10-29 13:16:06
【问题描述】:
我正在尝试编写一个类似于 list 的函数 (lnn; list-not-nil),它只附加非 nil 的值。
(list nil 3) --> (NIL 3)
(lnn nil 3) --> (3)
这是我到目前为止的代码。由于某种原因,它会在我尝试的任何输入上导致无限递归。
(defun lnn (&rest items)
(lnn-helper nil items))
(defun lnn-helper (so-far items)
(cond ((null items)
so-far)
((null (car items))
(lnn-helper so-far (cdr items)))
(t (lnn-helper (append so-far (list (car items))) (cdr items)))))
有什么想法吗?非常感谢。
【问题讨论】:
标签: lisp common-lisp infinite-loop