我想看看有沒有辦法來檢查從列表返回的項目是否是一個列表本身。
例如
(elt '(a (b c) d) 1)
有沒有一種方法來檢查返回的項目是一個列表?
我使用長度試過,
(length (elt '(a (b c) d) 1))
,但如果考慮到是不是拋出一個錯誤列表中的項目。
總之,我正在尋找一種方法來通過列表中的每個元素,並檢查它是否是一個列表。
謝謝
我想看看有沒有辦法來檢查從列表返回的項目是否是一個列表本身。
例如
(elt '(a (b c) d) 1)
有沒有一種方法來檢查返回的項目是一個列表?
我使用長度試過,
(length (elt '(a (b c) d) 1))
,但如果考慮到是不是拋出一個錯誤列表中的項目。
總之,我正在尋找一種方法來通過列表中的每個元素,並檢查它是否是一個列表。
謝謝
的listp告訴你:
(listp (elt '(a (b c) d) 1))
可悲的是,我一直在使用integerp了一下.. -1自己的俯瞰明顯。 – Freddy
不錯,我喜歡O(1)中CL中的'listp',因爲虛線和圓形列表也被認爲是列表。在Scheme世界中,'list?'只對正確的列表返回true,所以(除了不可變的conses實現,比如Racket),list?是O(n),這意味着我通常不願意建議使用'list?'作爲一般用途。 –
看到我的回答波紋管 – meirrav