这是一个励志的例子,鉴于:
List((1,2), (2,1), (3,1))
我想返回:
List((1,2),(3,1))
我已经尝试以多种方式做到这一点。第一的:
List((1,2), (2,1), (3,1)) map { case (a,b) => if (a > b) (a,b) else (b,a) }
distinct
然后我尝试使用一个元组:
List((1,2), (3,4), (2,1)) map { t => if (t._1 <= t._2) t else t.swap }
然后稍微不同地定义偏函数:
val pf: PartialFunction[(Int,Int), (Int,Int)] = {
case (i, j) if i >= j => (j, i)
}
List((1,2), (3,4), (2,1)) map pf distinct
有没有办法仅将 PartialFunction 应用于为其定义的元素?或以某种方式将 PF 与 Identity 复合。