Я пытаюсь zip
несколько последовательностей формировать длинный кортеж:
val ints = List(1,2,3)
val chars = List('a', 'b', 'c')
val strings = List("Alpha", "Beta", "Gamma")
val bools = List(true, false, false)
ints zip chars zip strings zip bools
Что я получаю:
List[(((Int, Char), String), Boolean)] =
List((((1,a),Alpha),true), (((2,b),Beta),false), (((3,c),Gamma),false))
Однако я хотел бы получить последовательность плоских кортежей:
List[(Int, Char, String, Boolean)] =
List((1,a,Alpha,true), (2,b,Beta,false), (3,c,Gamma,false))
Теперь я могу сделать:
List(ints, chars, strings, bools).transpose
Но он возвращает слабо типизированный List[List[Any]]
. Также я могу сделать (ints, chars, strings).zipped
, но zipped
работает только с 2-мя корнями и 3-мя кортежами.
Есть ли способ легко zip (произвольное) число равномерной последовательности?