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
endReduce 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(:+)=> 15irb(main):002:0>(1..5).inject(1, :*)=> 120
