AFAIK при уменьшении массива мы можем вывести только один раз переменную в конце, например:
(0..10).reduce(0) do |sum, value|
sum + value
end
Что если у меня есть массив хеш-объектов, могу ли я уменьшить массив и вывести несколько переменных, например:
({:grade => 100, :sex => 'female'}, {:grade => 90, :sex => 'male'}).reduce(0, 0, 0) do |sum_of_grades, sum_of_male, sum_of_female, value|
sum_of_grades = sum_of_grades + value[:grade]
sum_of_male += 1 if value[:sex] == 'male'
sum_of_female +=1 if value[:sex] == 'female
end