我在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).
答案 0 :(得分:1)
您需要做的是将其添加到数据库
ancestor(A, B) :- parent(A, B).
因为孩子的父母也是祖先。