【发布时间】:2012-03-06 01:09:06
【问题描述】:
我无法理解以下阶乘程序
fact1(0,Result) :-
Result is 1.
fact1(N,Result) :-
N > 0,
N1 is N-1,
fact1(N1,Result1),
Result is Result1*N.
当fact1 被嵌套在第二个fact1 中调用时,这是否意味着最后一行Result is Result1*N. 永远不会被调用?还是在 Prolog 中最后一行在递归调用之前执行?
【问题讨论】:
-
进行了调用,当它完成时,控件返回以继续执行以下目标(如果存在)。对自身的呼唤与否无关紧要。一个电话就是一个电话。
标签: recursion prolog factorial