我在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