`count`在Clojure中实现了一个懒惰的序列吗?

al3*_*l3x 9 clojure

假设我有一个LazySeq

(def s(取10(迭代+ 0)))

是否(count s)实现了序列?

Art*_*ldt 5

如果你问懒惰序列,是的.

user> (def s (map #(do (println "doing work") %) (range 4)))
#'user/s
user> (count s)
doing work
doing work
doing work                       
doing work
4  
Run Code Online (Sandbox Code Playgroud)

一些数据结构可以在恒定时间内给出答案,尽管延迟序列没有存储计数,并且计数总是实现它们.