我有这样的代码:斯卡拉流迭代和内存管理
val res = Stream // launch the real computation, which alternates E and M steps, updating the computation state
.iterate(initCompState)(Base.emIteration)
.take(nIteration)
.last
的想法是提供一个初始状态initCompState
,即从以前的一个产生新状态的功能,运行此为nIterations
,并获得最后结果。
我不是在中间状态感兴趣,并希望他们一旦不需要垃圾回收。从我在线阅读的内容来看,Stream
在递归定义时保留了值,这里并不是这种情况。
是我实现正确且一旦流中的下一个状态已经计算收集initCompState
和res
垃圾之间的中间状态?
而是使用'Iterator' – cchantep