3
而作为尾递归,我们计算Add(3,0),栈可能是如下过程:
Add(3,0)
=>
Add(3,0)
Add(2,1)
=>
Add(3,0)
Add(2,1)
...Add(3,0)的栈的过程如下:
Add(3,0)
=>
Add(2,1)
=>
Add(1,2)
=>
Add(0,3)
=>
3
尾递归优化给了我们一种迭代的方式.../a.out 10000000 100000000
马上发生短错误,直接崩溃。看来C语言作为底层语言没必要支持这个啊?
...Prolog
本不想测prolog,因为首先它并没有所谓的函数,靠的是谓词演化来计算,推理上的优化是其基本需求。...尾递归本不属于Prolog的支持范畴,当然可以构造类似尾递归的东西,而且Prolog当然可以完成,不会有悬念。