scala> val l = List((1,2), (2,3))
l: List[(Int, Int)] = List((1,2), (2,3))
уничтожения того
я могу сделатьраза список кортежей в Скале с
scala> (0 /: l) {(a, i) => i._1 + a}
res20: Int = 3
Но я хочу, чтобы быть в состоянии назвать элементы кортежа. Что-то вроде:
scala> (0 /: l) {(a, (b,c)) => b + a}
<console>:1: error: not a legal formal parameter
(0 /: l) {(a, (b,c)) => b + a}
^
Я знаю, что я могу сделать:
scala> (0 /: l) {(a, i) => val (b, c) = i; b + a}
res0: Int = 3
Но есть способ сделать код более кратким (мой реальный код включает в себя несколько таких складок, и я не люблю необходимости придумать имя переменной («я» в приведенном выше примере) для каждого)