通常,我执行的序列操作,我总是使用 doall
来实现它们。因此我想知道惰性序列的实际用途是什么?
我在网上看到的使用惰性序列的所有示例都是用于 seq 构建 - (take 5 (range)) - 该代码也可以重写为 - (range 5) - 我的观点是所有 seq 生成都可以即使没有惰性序列也可以完成,那么他们的实际需求是什么?
我只看到了用于生成数字序列的惰性序列的示例,还有其他应用程序吗?
最佳答案
他们按需生成结果,并可以在必要时停止生成。 这使得诸如无限序列、处理并行化、组合操作和避免临时存储(可以通过使用转换器进一步优化)等功能成为可能
最后,惰性使得可以轻松地将递归算法转换为序列(使用lazy-seq
)
关于clojure - 惰性序列的实际应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57338908/