Edited at

Scala: Listで前後の値を参照した処理の記述

More than 3 years have passed since last update.

ScalaでList(1, 2, 3, 4, 5)というリストがあったときに、(1, 2), (2, 3), (3, 4), (4, 5)と前後2つペアにして、List(3, 5, 7, 9)のような足し算の処理になるような式の書き方。

varとかforとかを使えばできるけどスマートじゃないし負けた気がするので、考えたらIterable#zipを使った方法を思いついた、Seqでも同じはず。

val list = List(1, 2, 3, 4, 5)

(list.init zip list.tail).map{ case (a, b) => a + b }

もっと楽な方法があれば教えて下さい。