什么是无限数据结构的引人注目的用例?
有些语言(Haskell,Clojure,Scheme等)有懒惰的评价。懒惰评估的“卖点”之一是无限数据结构。这有什么好处的?能够处理无限数据结构的情况的一些例子显然是有利的吗?
没有找到相关结果
已邀请:
6 个回复
细屠截殴些
zip的第一个参数是无限列表。您不需要计算出需要提前多长时间。
佩疵瓦
到
),那么这可能是一个巨大的胜利。
臂哦
我们将
函数映射到无限列表上,以构建一个包含
所有值的表。瞧!便宜,简单的记忆。 当然,这在参数中具有线性查找时间。您可以用无限trie替换它以获得对数查找时间。比照数据inttrie。
辽躺
。看看编写完整方法(包含所有3个参数)是多么容易,依赖于懒惰:
我也可以通过滥用懒惰来为非空列表写
:
考虑Prelude中定义的强大而优雅的
功能。
它创造了无限的列表
。我可以用
写
:
懒惰的方法是一种优雅的编程方式。这不是唯一的方式,习惯于C或Java的人肯定会喊出“但我不需要懒惰,我只能_”,而且他们是正确的。如果您的语言是Turing-complete,则可以完成。但懒惰可以是如此优雅。
屉杆绊
,并为副本生成新名称。它通过附加像这样的文本来做到这一点
只要该名称未在同一组内的对象集中使用。使用“无限数据结构”(无限数组的字符串)代替简单循环有一个好处:如果名称已经在使用中,您可以将名称生成部分与测试完全分开。因此,我可以将生成器函数重用于不同类型的对象,其中每个对象类型的使用中测试略有不同。
浩挎
可以代表
。由于内置的懒惰,操作这种表示变得容易。