Что такое рубиновый эквивалент метода Linq Aggregate. Это работает примерно так
var factorial = new[] { 1, 2, 3, 4, 5 }.Aggregate((acc, i) => acc * i);
: переменная acc накапливается каждый раз, когда значение из последовательности массива передается в лямбда ..