2011-03-19 38 views
3
Clojure 1.2.0 
user=> (def x (repeat 10 1)) 
#'user/x 
user=> (counted? x) 
false 
user=> (def x (list 1 2 3)) 
#'user/x 
user=> (counted? x) 
true 
user=> 

回答

6
  • (repeat 10 1)返回LazySeq
  • (list 1 2 3)返回PersistentList

顯然沒有辦法知道多少個項是一個懶惰的序列,直到該序列被評估的方式。

counted?對於實現接口clojure.lang.Counted的任何類都返回true。

+0

好的...只是爲了完成圖片。即使在doall計數後?返回false。 doall返回相同的列表,LazySeq。您可以隨時使用(class xs)檢查類型。要將LazySeq轉換爲PersistentList,可以使用(into()myLazySeq) – yalis 2011-03-19 19:01:21

相關問題