injectは便利なメソッドです。
実はちゃんと意味を理解せず場当たり的に使っていたのですが…
以下の物は全部同じ意味です
(1..10).inject(0){|i,j| j += i} #=> 55 (1..10).inject{|i,j| j += i} #=> 55 (1..10).inject(&:+) #=> 55 (1..10).inject(:+) #=> 55
injectに引数を渡してあげると、それを軸に動きます。
指定しなければself.firstを軸にします。
inject(init, sys)という順なので、次のような事もできたりします
('a'..'f').inject("abcdefg", :delete) #=> "g"
知らないといくらでも回りくどい実装ができそうでコワイですね