弱參考文獻。基本上,我需要一系列數字,其中一些數字可以在不再需要時被分配。是否有像流這樣的數據結構,但是很弱?
回答
scalaz.EphemeralStream是你想要的。
你可以做的一件事是創建一個Iterable
而不是一個Stream
。您的Iterable
需要提供iterator
方法,該方法返回包含hasNext
和next
方法的迭代器。
當環比Iterable
,hasNext
和next
將被調用來生成的元素在需要的時候,但他們不存儲(如Stream
一樣)。
簡單的例子:
class Numbers extends Iterable[Int] {
def iterator = new Iterator[Int] {
private var num = -1
def hasNext = num < 99
def next = { num += 1; num }
}
}
這沒有什麼幫助,因爲我需要一個流,有兩個原因:函數式編程(=不是迭代器)和記憶(不是迭代器)。 – Anonymous 2011-03-28 22:50:59
@匿名 - 請注意''Iterable'擁有大多數Scala收集方法(包括'foreach','map','filter','foldLeft'等),因此您可以像使用其他集合一樣使用它進行func編程,我以爲你想要的東西*不*保留生成的值? – Jesper 2011-03-29 11:03:37
它應該保留它們,但不是永久的。看看(我認爲)java.lang.ref.WeakReference。 – Anonymous 2011-03-29 12:29:11
- 1. SAS是否使用像Java這樣的數據結構
- 2. 這是什麼樣的數據結構?
- 3. 是否有像datedate2這樣的函數?
- 4. 是否有像@@ ServerName這樣的變量,但是對於數據庫名稱?
- 5. 這樣的數據結構是否存在?
- 6. 是否有這樣一個結合隊列和散列表的數據結構?
- 7. Java中的數據結構是否像TreeSet一樣,但允許重複?
- 8. 是否有像asctime_s()這樣的函數可用於Windows中的SYSTEMTIME結構?
- 9. 在PHP中,是否有像stristr這樣的函數,但是對於數組?
- 10. 這個基於數組的數據結構是否有名字?
- 11. 是否有像這樣的jQuery工具?
- 12. 是否有像java.awt.Polygon這樣的codenameone類?
- 13. 是否有可能這樣的結構聲明在C
- 14. 是否有像「Codea」這樣的應用程序,但對於MonoTouch?
- 15. 是否有像.dll或.so這樣的東西,但跨平臺?
- 16. java是否有「LinkedConcurrentHashMap」數據結構?
- 17. R是否有Set數據結構?
- 18. PHP是否有Set數據結構?
- 19. QT是否有像這樣的過濾器構建器
- 20. 這是否類似隊列數據結構有名字嗎?
- 21. 這是否是我的Node結構的正確析構函數?
- 22. 是否有像Twitter流API一樣的Instagram流式API?
- 23. 根據extjs4,是否有像'flex'這樣的垂直屬性?
- 24. 在Delphi中是否有像PHP的vardump這樣的函數?
- 25. jQuery JavaScript是否有像布爾型的parseInt這樣的函數
- 26. 是否有像PHP的exit()這樣的JavaScript函數?
- 27. 是否有像getClassInfo這樣的包含樣式的方法?
- 28. 有點像拼接的,但不是很
- 29. SOLR是否支持像multiValued字段的結構這樣的複雜類型?
- 30. Infinispan是否支持像Redis這樣的結構化值的本地操作?
你應該慶幸你沒有弱流(對不起,忍不住) – 2011-03-27 18:45:59
http://stackoverflow.com/questions/4132924/functional-processing- of-scala-streams-without-outofmemory-errors – 2011-03-27 20:09:54
@Sciss對不起,當我搜索時找不到任何東西......呃,有時候會發生,對嗎? – Anonymous 2011-03-27 21:31:45