【发布时间】:2011-06-27 14:05:24
【问题描述】:
我想浏览一个列表(可能有嵌套列表)并让它评估为一个包含所有元素的扁平列表。我什至无法得到一个递归函数来评估nil以外的任何东西
(defun pl(lst)
(if (atom lst)
lst
(progn
(pl (car lst))
(pl (cdr lst)))))
然后我会用(pl '(1 (2 3) (4 5))) 之类的东西打电话,但它总是评估为nil。
我变了
(if (atom lst) lst
到
(if (atom lst) (print lst)
这甚至不会打印列表中的任何项目。
我在这里缺少什么概念?
【问题讨论】:
-
您是否确定在进行更改后重新加载了
defun?我认为更改为(print lst)应该可以解决问题...
标签: list recursion printing lisp