0

私は scalaz-stream プロセスを持っています:

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

オプションを削除するにはどうすればよいですか?

これまでのところ、collect を使用してきましたが、エレガントではありません。

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 に答える