问题描述
我希望能够在折叠 fs2 流时评估每一步。
Stream.iterable[F,Int](List(1,2,3,4,5))
.evalFold(0){ case (acc,e) => logger.info(acc + e).as(acc + e) }
你知道这样做的方法吗?您能否编写一个由 Stream
中的函数组合而成的辅助函数?
假设 logger.info()
为 Int => F[Unit]
解决方法
我在 fs2 gitter 上得到了一个答案
- 我可以使用
evalScan(..).last
- 或者我可以通过实现
evalFold
并将其调整为仅在最后输出来编写evalScan