1

に追加したい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

4

3 に答える 3