0

我有一个 scalaz-stream 进程:

val src = Process.repeatEval(Task(in.take())) : Process[Task, Option[T]]

如何摆脱选项?

到目前为止,我使用了收集,但感觉并不优雅:

src.collect { case Some(x) => x } : Process[Task, T]

有没有更好的办法?

4

1 回答 1

0

您的解决方案是正确的,但实现已经存在于 scalaz-stream (<= 0.8) 中,在process1.stripNone

src.pipe(process1.stripNone)

或者

src |> process1.stripNone

中定义了许多其他转换(可能是有状态的)process1,因此值得通过文件查看可能有用的转换。

于 2016-03-28T00:08:49.427 回答