代码片段的prolog递归解释

时间:2017-02-24 17:40:36

标签: recursion prolog

我有parent/2parent(Parent, Child)个事实,我想找到两个对象或变量(如predecessor(Predecessor,Successor))之间的前导关系。代码段是:

predecessor(X,Z):-
    parent(X,Z).
predecessor(X,Z):-
    parent(X,Y),
    predecessor(Y,Z).

有些事实或关系是:

parent(tom,bob).
parent(pam,bob).
parent(tom,liz).
parent(tom,carl).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).

我的问题是哪个先前子句将首先运行以及此递归将如何终止以进行调用predecessor(tom,jim)

0 个答案:

没有答案