1

As stated above, what is the underlying data structure of a lazy sequence ? Is it a list ? If it is, then what kind of list is it ? Where can I find references about this ?

mynameisJEFF
  • 4,073
  • 9
  • 50
  • 96
  • see this question http://stackoverflow.com/questions/3247045/how-are-lazy-sequences-implemented-in-clojure – joshua Dec 05 '14 at 12:31

1 Answers1

3

The data structure is a clojure.lang.Lazyseq, defined here. The lazy-seq macro creates such.

As you can see, a LazySeq is essentially a linked list which starts life with a thunk (zero-parameter function) member fn. When the sequence is realized, fn is used to generate data member s or sv and is itself annulled. I can't quite figure out how s and sv relate to one another.

Thumbnail
  • 13,293
  • 2
  • 29
  • 37