Scalaの関数型言語的な集計ロジック
val values = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val sum = values.foldLeft(0)(_ + _)
とするとsum=55となる。 foldLeftの引数が初期値。
Longにしたい場合は、
val sum = values.foldLeft(0L)(_ + _.toLong)
で、foldLeftの省略形(なのかな?)が、
val sum = (0L /: values){_ + _.toLong}
変数はイミュータブルを使い、ループで回さないのが関数型言語的だそうです。
参考にしたサイト
↓
http://www.ne.jp/asahi/hishidama/home/tech/scala/sample/sum.html
http://d.hatena.ne.jp/Naotsugu/20100523/1274636814