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