标签: data-structures clojure lazy-sequences
如上所述,懒惰序列的基础数据结构是什么? 这是一个清单吗?如果是,那么它是什么样的清单?我在哪里可以找到关于此的参考?
答案 0 :(得分:3)
数据结构是clojure.lang.Lazyseq,定义为here。 lazy-seq宏创建了这样的。
clojure.lang.Lazyseq
lazy-seq
正如您所看到的,LazySeq本质上是一个链接列表,它以thunk(零参数函数)成员fn开始。实现序列后,fn用于生成数据成员s或sv,并且本身已取消。我无法弄清s和sv如何相互关联。
LazySeq
fn
s
sv