1

リストがあり、これを使用して 3 つのリストを作成したいと考えています。フィルターの 2 つのアプリケーションでこれを行うことができます。

val z_out = zs.filter(p1)
val z_in = zs.filter(p2)
val z_split = zs.diff(z_out union z_in)

リストの 1 回の走査でこれを実行できますか? 次のように:

val (z_out, z_in, z_split) = zs.foldLeft(...)
4

1 に答える 1

1

fold の結果がタプルである限り、次のことができます。

scala> val (a,b,c) = Nil.foldLeft((1,2,3))((x,y) => x)
a: Int = 1
b: Int = 2
c: Int = 3
于 2013-01-04T15:41:56.130 に答える