在scalaz流中,如何将Process [Task,Seq <b>]转换为Process1 [Task,B] </b>

时间:2014-12-11 22:24:38

标签: scalaz-stream

我有一个过程[任务,A]。 A包含Bs的Seq

case class A(elems:Seq[B])

我想将Process [Task,A]转换为Process [Task,B]

def streamOfAs:Process[Task,A] = ???

streamOfBs1:Process[Task,Member] = streamOfAs.flatMap(Process.emit(_.elems)) //Compiler error
streamOfBs2:Process[Task,Member] = streamOfAs pipe process1.lift((a:A) => a.elems) //yields Process[Task,Seq[B]]

是否有任何buildtin功能来实现这一目标?

1 个答案:

答案 0 :(得分:1)

如果我理解正确,案例A类基本上是函数A =&gt; SEQ [B]

然后解决方案可能是

val sourceB: Process[Task,B] = sourceA.flatMap(emitAll(_.elems))