錫蘭有沒有一種簡單的方法來創建一個無限迭代器,它通過調用相同的無參數函數來生成每個元素?換句話說,語言模塊是否提供了與Java 8的Stream.generate(Supplier<T>)
相同的功能?或者是否有某種語法糖來實現這一點?錫蘭的無限迭代發生器
2
A
回答
4
這就是我想出了:
{Value+} generator<Value>(Value() generate) => {generate()}.cycled;
這工作,因爲{generate()}
是懶惰。
1
不,這實際上並不正確,現在存在的,我覺得「Ceylonish」的方法是這樣的:
class Generator<T>(T func()) satisfies Iterable<T> {
object iter satisfies Iterator<T> {
next() => func();
}
iterator() => iter;
}
你也可以打開一個請求它:the language module
相關問題
- 1. 錫蘭當量Collections.shuffle()
- 2. 從錫蘭運行錫蘭typechecker,就像typechecker/src/main/Main.java
- 3. 錫蘭編譯器和虛擬機
- 4. 錫蘭插件Android Studio中
- 5. 在錫蘭使用模塊
- 6. Scala無限迭代器OutOfMemory
- 7. 不同版本的錫蘭模塊?
- 8. 追加到錫蘭的序列
- 9. Jimfs到錫蘭的路徑目錄
- 10. 使用自編的LinkedList迭代器的無限迭代
- 11. 使用迭代器的無限循環
- 12. 迭代器的無限收益
- 13. 在錫蘭打破多個循環
- 14. 沒有錫蘭可運行元件
- 15. Python3迭代器vs發生器
- 16. 迭代發生器中的相鄰對
- 17. Java迭代器無限循環
- 18. 迭代發生器返回一個發生器
- 19. 迭代器協議與發生器vs迭代器在swift中的比較
- 20. 如何使用錫蘭JS(也與谷歌關閉編譯器)
- 21. Promise.all無效迭代拋出生成器
- 22. 迭代器無故迭代C++
- 23. Java迭代器無限循環僅迭代hashmap中的第一項
- 24. 迭代器的迭代器
- 25. Python發生器卡在無限循環
- 26. 有效的或無效的迭代器和迭代器位置
- 27. 自定義迭代器以循環模式無限迭代集合
- 28. 錫蘭RMI/Proxy和非默認方法的關係
- 29. 通過生成器迭代時發生IndexError
- 30. 如何創建無限重複多個值的迭代器?
[在FAQ稱它爲「ceylonic」](http://ceylon-lang.org/documentation/1.1/faq/#am_i_allowed_to_say_ceylonish)。 –
這是[近一年後添加](https://github.com/ceylon/ceylon-lang.org/commit/94f311119d1e50971794be225a77c18ed9b220cc)我回答了這個問題;) – Quintesse