class Array
    def Reduce(acc = 0)           
        each do |e|             
            acc = yield(acc, e)               
        end      
        acc
    end
end

arr = [1,2,3,4,5]

p arr.Reduce { |a, e| a + e }
p arr.Reduce { |a, e| a - e }
p arr.Reduce(1) { |a, e| a * e }
p arr.Reduce(1) { |a, e| (a / e).to_f }

sarr = arr.map {|e| e.to_s }
p sarr.Reduce("") { |a, e| a + e }

p arr.Reduce([]) { |a, e| a.push(e * e) if e.odd?; a }
p arr.Reduce({}) { |a, e| a[e] = e * e; a }
            
                
        

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: