我在LISP中完成了这项作业,我需要从中列出原子,然后列出子列表。我敢肯定,这应该是一件容易的事情,但由于我不是一个程序员,所以这真的需要我花很长时间才能理解。首先理清原子,然后从列表中列出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)))))
此外,即使只有子列表,只有原子或只是空列表,函数应该正常工作。
也许有人可以给我任何例子?
在此先感谢!
谢谢,这个作品完美。 – user1392317
你能举个例子,我应该在第一个代码中编辑什么,以便它能够对矩阵中的原子进行排序?例如,我有(((4 5)2)(3(2)5)(4(0)2 6)),它应该像这样排序原子:((2(4 5))(3 5(2) )(4 2 6(0))) – user1392317
Try(mapcar#'f(((4 5)2)(3(2)5)(4(0)2 6)))。 – uselpa