scala> val a = List(1,2)
a: List[Int] = List(1, 2)
scala> val b = List(3,4)
b: List[Int] = List(3, 4)
scala> val c = List(5,6)
c: List[Int] = List(5, 6)
scala> val d = List(7,8)
d: List[Int] = List(7, 8)
scala> (a,b,c).zipped.toList
res6: List[(Int, Int, Int)] = List((1,3,5), (2,4,6))
scala> (a,b,c,d).zipped.toList
<console>:12: error: value zipped is not a member of (List[Int], List[Int], List[Int], List[Int])
(a,b,c,d).zipped.toList
^
Rozglądałem się za to gdzie indziej, w tym this one i this one, ale nie ma rozstrzygającej odpowiedzi.
Chcę wykonać następujące lub podobne:
for((itemA,itemB,itemC,itemD) <- (something)) yield itemA + itemB + itemC + itemD
sugestie?
powiązane? http://stackoverflow.com/questions/1664439/can-i-zip-more-than-two-lists-together-in-scala – WeaklyTyped
ostatnia odpowiedź, combinedLists prawie daje oczekiwany wynik, jednak robi to w Odwrotna kolejność. Próbuję dowiedzieć się, jak sprawić, aby produkować prawidłowy wynik (zamiast odwracać kolejność parametrów.To również tworzy listę wartości, a nie krotkę.Dzięki! – fracca
'Lista (a, b, c, d) .transpose' daje to 'List (List (1, 3, 5, 7), List (2, 4, 6, 8)). Następnie możesz użyć bezkształtnego, aby uzyskać listę krotek' List ((1, 3,5,7), (2,4,6,8)) 'Zobacz tę odpowiedź na shapeless: http://stackoverflow.com/a/11307342/390708 – Brian