我想使用fs2 Streams,cats EitherT和cats-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的隐式定义。
发布于 2019-12-11 21:16:09
以下是Michael Pilquist在gitter通道中提供的答案:
vs.traverse(f).map(s => Stream.emits(s).flatten) https://stackoverflow.com/questions/59285926
复制相似问题