groupByと呼んでいるペアのリストがあります。ただし、groupByは値にペアの両方の部分を含め、「グループ化」されていないペアの部分のみを含めたいと思います。
List(1->2, 1->3, 2->3) groupBy (_._1)
scala.collection.immutable.Map [Int、List [(Int、Int)]] = Map(1-> List((1,2)、(1,3))、2-> List((2,3) ))
Mapエントリにマップし、重複キーを削除するメソッドを作成しました。
def removeDupeKeyFromPair[A, B](m: Map[A, List[Pair[A, B]]]): Map[A, List[B]] =
m map { case(k, vlist) => k -> { vlist map { case(dupe, b) => b } } }
List[Pair[A,B]]
しかし、これをどこからC[Pair[A,B]]
どこまで一般化したいC<:Iterable
ので、やってみました
def removeDupeKeyFromPair[A, B, C[Pair[A, B]] <: Iterable[Pair[A, B]]]
(m: Map[A, C[Pair[A, B]]]): Map[A, C[B]]
しかし、これは
エラー:Bはタイプパラメータを取りません、予想されます:2
これらのタイプを正しく表現するにはどうすればよいですか?
編集: これは私にとっての学習演習であるため、別の解決策を見つけるよりも、特定のタイプを適切に表現する方法に興味があります。他の解決策について学ぶことも素晴らしいですが。