scala 合算実験に興味を示しました
scala で collection の要素の合計を求める方法について、比較検討されている。
Scala 合算実験(Hishidama's Scala sum Memo)
Numeric[T]を自分で実装して sum を使うあたりとか、おーそういう手もあったか、みたいな。
でも、再帰の比較が頂けない。Vector/WrappedArray.tail を毎回呼び出して、List >>>> Vector >>>(超えられない壁)>>> Array と結論づけるくだりが、誤解をまねくんじゃないかなと思う。Array すきすき星人のおいらには悲しすぎるん。
そこで、ちょっと付け足してみた。
- tail の代わりに 添字で再帰
- 僕の考える、最速ルーチン!
* | List | Vector | Array |
while | 62.375 | 30.75 | 33.875 |
再帰 | 39.75 | 67.5 | 64.125 |
オレオレ | 未実装 | 未実装 | 7.75 |
きゃーっ、やっぱ、Array最強ザマス!
例によって、コード公開はideone.com ideone - scala 合算実験に参加 にて。