我在 Prolog 中编写了一些简单的父/父/祖先函数。除了祖先,一切都很好。像这样 ...
?- parent(abe,homer).
true.
?- parent(homer,bart).
true.
?- ancestor(abe,bart).
false.
为什么我的祖先(abe,bart)返回错误?这是我的功能……
%% returns true is X is an ancestor of Y, otherwise returns false
ancestor(X,Y) :-
parent(X,Z),
ancestor(Z,Y).