kotlin中的懒惰列表?

我怎样才能以简单的方式实现Kotlin中的懒惰列表? (例如,整数懒惰列表)。 我一直在寻找官方文档,我一直在搜索,没有一致的结果。 也许我找到的最好的教程是这样的: 在这里输入链接描述 ,但是我不知道是否有更多的“科特林原生的方式”,或者我必须自己用我刚刚给出的链接来实现它。

我在Kotlin的官方博客上发现了以下内容,尽管我无法获得一个项目,例如整数[3]

var i = 0 integers = iterate{i++} integers[3] // does not work integers drop 3 // works 

正如你所看到的, sequenceOfstreamOf()在旧版本中)是获得懒惰的数字流的方式。 与Haskell不同,Kotlin的标准库中没有懒惰的列表,有一个很好的理由:Haskell世界和Java世界中“list”的主要含义是不同的。 在Haskell中,一个列表主要是一个链表,一对头和一个尾,而主要的操作是把这样一个表的头,这是直截了当的有效实施的懒惰。 在Kotlin / Java中,列表是一个随机访问元素的数据结构,主要操作是get(int) ,当然这可以被懒惰地实现,但是它的性能往往会让用户感到惊讶。

所以,Kotlin使用流来表示懒惰,因为对于懒惰集合的主要用例来说,它们是很好的:迭代,过滤,映射和随机访问不太可能经常遇到。

正如你所看到的那样, drop可以让你通过索引访问元素,这使得代码中的性能影响更加明确。

顺便说一下,你懒惰列表的用例是什么?