0

我想使用fs2 Streams、cats EitherTcats-effect IO 定义一个具有以下签名的函数。

def list2Stream[A,B,F[_],S](vs: List[A], 
                             f: A => EitherT[IO,S,Stream[IO,B]]
                             ): EitherT[IO,S,Stream[IO,B]] = {
   ???
}

它将每个值从 vs 映射到一个值流,并将所有这些值收集到一个新流中。

我试过类似的东西:

  vs.map(f).sequence.flatten

但似乎 Stream 没有隐含的定义。

4

1 回答 1

1

Michael Pilquist 在 gitter 频道中提供了以下答案:

 vs.traverse(f).map(s => Stream.emits(s).flatten) 
于 2019-12-11T13:16:09.340 回答