3

锡兰有没有一种简单的方法来创建一个无限迭代,通过调用相同的给定无参数函数来生成每个元素?换句话说,语言模块是否提供与 Java 8 等效的功能Stream.generate(Supplier<T>)

4

2 回答 2

5

这是我想出的:

{Value+} generator<Value>(Value() generate) => {generate()}.cycled;

这是因为{generate()}懒惰。

于 2013-11-25T07:49:11.313 回答
1

不,这实际上并不存在,我认为“锡兰语”的方式是这样的:

class Generator<T>(T func()) satisfies Iterable<T> {
    object iter satisfies Iterator<T> {
        next() => func();
    }
    iterator() => iter;
}

您也可以在以下位置打开请求:语言模块

于 2013-11-27T10:39:06.730 回答