Ответ 1
val xs = List(1,2,3,4)
xs zip xs.tail
// res1: List[(Int, Int)] = List((1,2), (2,3), (3,4))
Как говорят документы, zip
Возвращает список, сформированный из этого списка, и другую итеративную коллекцию путем объединения соответствующих элементов в парах. Если один из двух коллекции больше, чем другие, остальные элементы игнорируются.
Итак, List('a,'b,'c,'d)
с z List('x,'y,'z)
- List(('a,'x), ('b,'y), ('c,'z))
с окончательным 'd
первого игнорируется.
В вашем примере tail
of List(1,2,3,4)
- List(2,3,4)
, чтобы вы могли видеть, как эти zip вместе находятся в парах.