scanを利用した累積和の計算


scanを使用すると簡単に累積和を計算することができます

第一引数には初期値、第二引数には次の値を計算するための関数を渡します。ラムダ式を指定することもできます

 val arr = intArrayOf(1, 2, 3, 4, 5)
 val acc = arr.scan(0, Int::plus) // val acc = arr.scan(0) { x, y -> x + y } と書くこともできます
 println(acc) // [0, 1, 3, 6, 10, 15]