我不确定这是否是问这种问题的正确地方,请不要讨厌我。最近我在edx.org上开始学习F#,只是为了好玩。我们学了递归这一课程。该课程的作者给出了一个有趣的例子:
let rec T a =
if a = 0 then
2
else
T (a - 1) * a
他把a设为4,输出结果为48。我一直在思考这个问题,但没想明白。因为4不等于0,所以我们得到T(4-1)*4,也就是12。由于a每次都减少1,那么哪个位置会得到结果12呢?是T(3-1)*12还是其他什么?我们如何得到结果48?