に追加したいStream
Stream
しかし、次のストリームは、前の折りたたみ結果に依存します
これが私のやり方ですが、ストリームs
は2回評価されます
import fs2._
def ints(start: Int) = Stream.iterate(start) { i =>
println(i)
i + 1
}.take(10)
val s = ints(0)
def foldAppend(init: Int)(f: (Int, Int) => Int)(next: Int => Stream[Pure, Int]) = {
s ++ s.fold(init)(f).flatMap(next)
}
val res = foldAppend(0)((s, i) => s + 1)(ints)
println(res.toList)
foldAppend
一度だけ評価するメソッドを実装するにはどうすればよいですかs
。