在Ceylon中有一种简单的方法可以创建一个无限的迭代,它通过调用相同的no-args函数来生成每个元素吗?换句话说,语言模块是否提供了与Java 8的Stream.generate(Supplier<T>)
相同的作用?
答案 0 :(得分:5)
以下是我提出的建议:
{Value+} generator<Value>(Value() generate) => {generate()}.cycled;
这是有效的,因为{generate()}
是懒惰的。
答案 1 :(得分:1)
目前实际上并不存在,我认为“Ceylonish”的方式是这样的:
class Generator<T>(T func()) satisfies Iterable<T> {
object iter satisfies Iterator<T> {
next() => func();
}
iterator() => iter;
}
您也可以在the language module
上打开请求