Я наткнулся на этот прекрасный кусок кода на http://projecteuler.net/, но у меня возникли проблемы с обдумыванием определенной части его.
def generate(n, factors=[])
return factors if n == 1
new_factor = (2..n).find {|f| n % f == 0}
generate(n / new_factor, factors << [new_factor])
end
factors = []
generate(4356463234, factors)
Вопрос : Когда генерирующая функция вызывает себя в строке 4, что factor << [new_factor] </strong> делает?
Спасибо за понимание!