首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >惰性序列的实际应用

惰性序列的实际应用
EN

Stack Overflow用户
提问于 2019-08-03 21:46:48
回答 2查看 147关注 0票数 2

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

我在网上看到的所有使用延迟序列的例子都是为了构建seq -(取5 (range)) -这段代码也可以重写为- (range 5) -我的观点是所有seq的生成都可以在没有lazy seq的情况下完成,那么他们的实际需求是什么?

我只看过用来生成数字序列的惰性seq的例子,还有其他的应用吗?

EN

回答 2

Stack Overflow用户

发布于 2019-08-03 23:18:37

他们按需产生结果,并可以在必要时停止生产。这使得像无限序列、并行处理、组合操作和避免临时存储(可以通过使用传感器进一步优化)之类的事情成为可能。

最后,惰性使得将递归算法转换为序列变得容易(使用lazy-seq)

票数 3
EN

Stack Overflow用户

发布于 2019-08-05 13:43:52

可以在tentacles library中找到一个懒惰的seq示例(尽管我不确定它是否是一个很好的示例)。

Eric Normand还展示了一个利用惰性序列的reading pages of data from a database示例,因此客户端只获取他们真正需要的页面。

附注:编程Clojure一书(第3版,第85页)提到了使用惰性序列的以下指南:

在生成大的或可变大小的sequences.

  • Don't时使用
  • 实现比您需要的更多的惰性序列
  • 使用递归,即在生成标量值或小的固定序列时立即求值。
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57338908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档