Scalaで労働組合、サブセットとスーパーセットの取り扱い
-
11-09-2019 - |
質問
私は、配列Aに設定されたデータを生成する、複数の配列を比較し、それらの配列内のデータに一致するセットを生成するコードスニペットを記述する必要はなく、アレイBの配列B、C、D、でなくないA、C、Dにおいて、アレイの任意の数(すなわち、動的ループ)を処理することができます。コード(すなわち、Javaのようなループ規則的な配列を好まない)Scalaで匿名の機能を利用する必要があります。
解決
は、私には宿題のような音。はるかにこれを行う最も簡単な方法はSet
に、配列Aの内容をスローし、削除操作を使用することです。これは次のようになり、 O(N)ここで、 N = \和{| A |、| B |、| C |、...}。
Iterable
だけではなく、Array
のために働きます
def compareArrays[A](arrs: List[Iterable[A]]) = arrs match {
case a :: tail => {
val set = a.foldLeft(Set[A]()) { _ + _ }
tail.foldLeft(set) { _ -- _ }
}
case Nil => Nil
}
所属していません StackOverflow