我有check(a, b, c)
方法检查a是否在b
和c (a >= b && a <= c)
之间。
对于给定的列表,例如v = List(1,2)
和r = List((3,4),(5,6))
;我想使用check方法检查所有值r是否在r的范围内:check(1, 3, 4) && check (2, 5, 6)
。
我有如下高级解决方案,但我有一些缺失的部分。
val x = v zip r // (Int, (Int, Int))
val y = ??? // (Int, (Int, Int)) => (Int, Int, Int)
(y map check).forall {_ == true} // error
我如何获得解决方案?
答案 0 :(得分:5)
如何直接致电forall
?
(v zip r).forall{case (a,(b,c)) => check(a,b,c)}
使你的方法有效的一种方法(我不推荐它)。
val x = v zip r
val y = x map {case (a,(b,c)) => (a,b,c)}
val tupledCheck = (check _).tupled
//Some alternatives for the result
(y map tupledCheck).forall(_ == true)
(y map tupledCheck).forall(identity)
y forall tupledCheck