0
我在药剂创建一个阶乘函数:理解递归与灵药
所有的def factorial(0), do: 1
def factorial(n) when n > 0, do: n * factorial(n - 1)
首先,我爱多么简单而优雅的解决方案是药剂。但是,有一件事我不明白。在第二行,我使用了这个代码:do: n * factorial(n - 1)
。假设我们给该函数一个参数5.该行看起来像这样。 do: 5 * factorial(5 - 1)
那么为什么不回答这个问题:20
?基本上我的问题是。它如何知道继续基本情况?我们没有明确地告诉程序继续到0,是吗?如果有人可以打破这一点,那将是非常棒的!