fs2 评估折叠?通过评估效果折叠?

问题描述

我希望能够在折叠 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

fs2 API Stream.scan

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...