scala> val l = List((1,2), (2,3))
l: List[(Int, Int)] = List((1,2), (2,3))
mogę zrobićkrotnie lista krotek w Scala z demontażu struktury
scala> (0 /: l) {(a, i) => i._1 + a}
res20: Int = 3
Ale chcę, aby móc wymienić elementy krotki za. Coś jak:
scala> (0 /: l) {(a, (b,c)) => b + a}
<console>:1: error: not a legal formal parameter
(0 /: l) {(a, (b,c)) => b + a}
^
wiem, że mogę zrobić:
scala> (0 /: l) {(a, i) => val (b, c) = i; b + a}
res0: Int = 3
Ale czy istnieje sposób dokonywania kod bardziej zwięzły (mój prawdziwy kod obejmuje kilka takich fałd i nie lubię konieczności wymyślić nazwę zmiennej ('i' w powyższym przykładzie) dla każdego)