我想使用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 没有隐含的定义。