clojure - 惰性序列的实际应用

标签 clojure

通常,我执行的序列操作,我总是使用 doall 来实现它们。因此我想知道惰性序列的实际用途是什么?

我在网上看到的使用惰性序列的所有示例都是用于 seq 构建 - (take 5 (range)) - 该代码也可以重写为 - (range 5) - 我的观点是所有 seq 生成都可以即使没有惰性序列也可以完成,那么他们的实际需求是什么?

我只看到了用于生成数字序列的惰性序列的示例,还有其他应用程序吗?

最佳答案

他们按需生成结果,并可以在必要时停止生成。 这使得诸如无限序列、处理并行化、组合操作和避免临时存储(可以通过使用转换器进一步优化)等功能成为可能

最后,惰性使得可以轻松地将递归算法转换为序列(使用lazy-seq)

关于clojure - 惰性序列的实际应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57338908/

相关文章:

java - Clojure函数评估

performance - JVM 上性能最高的 lisp 是什么

java - Clojure deftype 引用其他类型

unit-testing - 如何在 Leiningen 中打印测试名称?

clojure - 如何验证 malli 模式中的本地日期?

clojure - 如何从Clojure中的文件读取n行

clojure - Clojure 中的匿名函数

clojure - 如何从具有多级路径的页面加载 ClojureScript 输出?

java - 将 Java 类导入 Clojure

groovy - 您对Groovy有何看法?