【发布时间】:2012-03-07 06:39:49
【问题描述】:
我在 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)
问题:当 generate 函数在第 4 行调用自身时,factors 做了什么?
感谢您的洞察力!
【问题讨论】:
标签: ruby function recursion argument-passing tail-recursion