錫蘭有沒有一種簡單的方法來創建一個無限迭代器,它通過調用相同的無參數函數來生成每個元素?換句話說,語言模塊是否提供了與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. 錫蘭編譯器和虛擬機
- 3. 錫蘭插件Android Studio中
- 4. Scala無限迭代器OutOfMemory
- 5. Jimfs到錫蘭的路徑目錄
- 6. 不同版本的錫蘭模塊?
- 7. 使用自編的LinkedList迭代器的無限迭代
- 8. 迭代器的無限收益
- 9. 沒有錫蘭可運行元件
- 10. Python3迭代器vs發生器
- 11. 迭代發生器中的相鄰對
- 12. 迭代發生器返回一個發生器
- 13. 迭代器協議與發生器vs迭代器在swift中的比較
- 14. 迭代器無故迭代C++
- 15. Java迭代器無限循環僅迭代hashmap中的第一項
- 16. 迭代器的迭代器
- 17. 有效的或無效的迭代器和迭代器位置
- 18. 錫蘭RMI/Proxy和非默認方法的關係
- 19. 通過生成器迭代時發生IndexError
- 20. 無限迭代器相交集的算法
- 21. 如何創建無限重複多個值的迭代器?
- 22. Java迭代器併發性
- 23. 發生器/塊到迭代器/流轉換
- 24. 錫蘭不能對元組應用一些函數嗎?
- 25. 錫蘭運行:未找到模塊默認/未版本
- 26. 在錫蘭,我如何從課堂上獲得Class對象?
- 27. 如何在錫蘭創建一個超級罐子
- 28. 異類迭代器的C++迭代器
- 29. 調試生成器和迭代器
- 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