scala 合算実験に興味を示しました

scala で collection の要素の合計を求める方法について、比較検討されている。
Scala 合算実験(Hishidama's Scala sum Memo)
Numeric[T]を自分で実装して sum を使うあたりとか、おーそういう手もあったか、みたいな。

でも、再帰の比較が頂けない。Vector/WrappedArray.tail を毎回呼び出して、List >>>> Vector >>>(超えられない壁)>>> Array と結論づけるくだりが、誤解をまねくんじゃないかなと思う。Array すきすき星人のおいらには悲しすぎるん。

そこで、ちょっと付け足してみた。

  • tail の代わりに 添字で再帰
  • 僕の考える、最速ルーチン!

*ListVectorArray
while62.37530.7533.875
再帰39.7567.564.125
オレオレ未実装未実装7.75

きゃーっ、やっぱ、Array最強ザマス!

例によって、コード公開はideone.com ideone - scala 合算実験に参加 にて。