2013-09-10 16 views

cevap

5

Tembel diziler hakkında soru soruyorsanız, Evet.

user> (def s (map #(do (println "doing work") %) (range 4))) 
#'user/s 
user> (count s) 
doing work 
doing work 
doing work      
doing work 
4 

veri yapılarının bazı hep sayarak onları anlar tembel dizileri saklı sayımını yok gerçi, size sürekli sürede cevap vermek ve olabilir.

+0

ilk gerek yok –

+0

oops, teşekkürler. sabit. –

1

Tembel sıranın tanımına bağlıdır. Elemanlarını fark etmeden uzunluklarını bilenleri uygulamak mümkündür. Örnek için bkz. this question, ancak vakaların% 99'unda sadece LazySeqs olduklarından, Michiel'in cevabı bunu kapsamalıdır. böylece s o onun içeriği farkında olmadan uzunluğu olduğunu bilecek kadar 'zeki' değil, (count s) çağrıldıktan sonra

(realized? s) 

getiri true: senin örneğin durumda

o kadar, test etmek kolaydır.

+0

Oh 'Bilmiyorum' hakkında bilmiyordum. Teşekkürler! – al3x

3

Bir LazySeq evet için sayma yöntemini here görebilirsiniz. Her elemanı baştan kuyruğa doğru yürüyor.

İlgili konular