最初は
[ruby]
a = [1,2,3]
sum = 0
a.each{|i| sum += i}
[/ruby]
とかやっていて,どうもいまいちだなあと思って,しばし考えた後こうしてみた。
sum = eval(a.join("+"))
だいぶスマートになったけど,よくよく考えると joinというメソッドは加算とはぜんぜん関係ないだけに,ぱっと見,総和を出しているようには見えない。結局理想形は
sum = a.sum
という風に書ける Array#sumを定義すればいいんだろうけど,メソッド定義するほど大げさなものでもないので,つまるところ eval方式に落ち着いた。