b1 = Time.now
puts (1..100000).inject(0) { |x, y| x + y }
a1 = Time.now
puts "Time for inject: #{a1 - b1}"
b2 = Time.now
sum = 0
(1..100000).each do |value|
sum += value
end
puts sum
a2 = Time.now
puts "Time for each: #{a2 - b2}"
上記のRubyコードは、整数を合計する2つの方法を比較しています。驚いたことに、よりエレガントな注入または削減アプローチは、他のアプローチよりも優れています。なぜそうなのですか?なぜ人々は非効率的な注入または削減をわざわざ使用するのですか?エレガントだから?
PS:すべての刺激的な答えをありがとう。私の意図は、違いをもたらす舞台裏で何が起こっているのかを尋ねることでした。