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