Ruby: Module, Mixins und Blocks verwirrend?

Das Folgende ist der Code, den ich versucht habe, von derRuby Programming Buchhttp://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_modules.html

Warum geht das nicht?product Methode geben die richtige Ausgabe? Ich lief es mitirb test.rb. Und ich renneRuby 1.9.3p194.

module Inject
  def inject(n)
    each do |value|
      n = yield(n, value)
    end
    n
  end

  def sum(initial = 0)
    inject(initial) { |n, value| n + value }
  end

  def product(initial = 1)
    inject(initial) { |n, value| n * value }
  end
end

class Array
  include Inject
end

[1, 2, 3, 4, 5].sum            ## 15
[1, 2, 3, 4, 5].product        ## [[1], [2], [3], [4], [5]]

Antworten auf die Frage(5)

Ihre Antwort auf die Frage