7.2.1. Reduce / Inject

Metoda která redukuje celou množinu objektů na jednu hodnotu. Princip redukce je algoritmus:

reduce (objects) :: Enumerable → Value
    accumulator = 0
    objects.each do |accumulator, object|
        accumulator += object
    end
    return accumulator
end

Reduce nahrazuje celý takový programový zápis. Protože v něterých jazycích je známa pod názvem Inject, má ruby dva názvy reduce a inject které jsou synonyma. Z různých důvodů upřednostňuji název inject, zadáváme-li počáteční hodnotu a název reduce když tuto hodnotu nezadáváme.

irb(main):001:0> (1..5).reduce(:+)
=> 15
irb(main):002:0> (1..5).inject(1, :*)
=> 120
Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .