Usage of method reduce in Ruby
Kasia Ekiert
Posted on October 25, 2023
Usage of reduce in ruby and a task:
Write a program that displays the sum of predecessors for the next 10 natural numbers. Expected result: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55.
My solution:
def counter(n)
sum = 0
letters = []
(1..n).each do |number|
sum += number
letters << sum
end
letters.join(", "). #remember to create an array first and then to join letters inside
end
puts counter(10) #result: 1, 3, 6, 10, 15, 21, 28, 36, 45, 55
Tests:
require './training1'
RSpec.describe '#counter' do
subject { counter(n) }
context 'It gives partial sums of the numbers' do
let(:n) { 10 }
it "should return a line of numbers" do
expect(subject).to eq("1, 3, 6, 10, 15, 21, 28, 36, 45, 55")
end
end
end
But if we don’t need to display all numbers and we need just a sum of them, we may use the method reduce:
def counter(n)
(1..n).reduce(:+)
end
puts counter(10) #result: 55
https://apidock.com/ruby/Enumerable/reduce
Enjoy :)
💖 💪 🙅 🚩
Kasia Ekiert
Posted on October 25, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.