The “corresponds” function lets you match up items between two lists. For a good use of this, imagine you have a list of values, and a list of ranges (e.g. numeric or time windows):
val a = List(1, 2, 3, 4)
val b = List((1,4), (2,5), (3,7), (3,11))
From that, you can write a function that compares one item to a range tuple:
val cmp =
(k: Int, v: (Int, Int)) => {
val (start, end) = v
k >= start && k < end
}
cmp: (Int, (Int, Int)) => Boolean =
And then call corresponds (note the two sets of parenthesis):
scala> a.corresponds(b)(cmp)
res22: Boolean = true
This works as expected. If the arrays aren’t of the same length, you’ll also get ‘false’ as expected:
val a = List(1,2,3)
a.corresponds(b)(cmp)
res24: Boolean = false