Вот способ, основанный на этом ответе
scala> :paste
// Entering paste mode (ctrl-D to finish)
val s1 = List('a','b','c','d')
val s2 = List('1','2','3','4')
val s3 = List("aa","ab","ac","ad")
val s4 = List('e','f','g','h')
val s5 = List('5','6','7','8')
val s6 = List("ba","bb","bc","bd")
val s7 = List("ca","cb","cc","cd")
// Exiting paste mode, now interpreting.
s1: List[Char] = List(a, b, c, d)
s2: List[Char] = List(1, 2, 3, 4)
s3: List[String] = List(aa, ab, ac, ad)
s4: List[Char] = List(e, f, g, h)
s5: List[Char] = List(5, 6, 7, 8)
s6: List[String] = List(ba, bb, bc, bd)
s7: List[String] = List(ca, cb, cc, cd)
scala> for (e1 Tuple2 e2 Tuple2 e3 Tuple2 e4 Tuple2 e5 Tuple2 e6 Tuple2 e7 <- s1 zip s2 zip s3 zip s4 zip s5 zip s6 zip s7) yield (e1, e2, e3, e4, e5, e6, e7)
res0: List[(Char, Char, String, Char, Char, String, String)] = List((a,1,aa,e,5,ba,ca), (b,2,ab,f,6,bb,cb), (c,3,ac,g,7,bc,cc), (d,4,ad,h,8,bd,cd))