我在LISP中有这个功课,我需要从列表中挑选出原子然后的子列表.我确信这应该是一件容易的事,但由于我不是一个程序员,所以这真的花了很长时间让我理解.
我有这个数字列表:
(5 -1 (2 6 1) (8 7 -3) (0 (9 4)) -6)
Run Code Online (Sandbox Code Playgroud)
如果我理解我的任务,那么我应该得到这样的东西:
(5 -1 -6 (2 6 1) (8 7 -3) (0 (9 4)))
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现的是如何计算原子和/或子列表,但我不需要.
(DEFUN ATOMNUMBER (L) (COND ((NULL L) 0)
((ATOM (CAR L)) (+ 1 (ATOMNUMBER (CDR L))))
(T (ATOMNUMBER (CDR L))) ))
Run Code Online (Sandbox Code Playgroud)
即使只有子列表,只有原子或只是空列表,该函数也应该正常工作.
也许有人可以给我任何例子?
提前致谢!