为什么这个简单的prolog函数失败了?

时间:2013-03-28 01:48:05

标签: prolog

我在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).

1 个答案:

答案 0 :(得分:1)

您需要做的是将其添加到数据库

ancestor(A, B) :- parent(A, B). 

因为孩子的父母也是祖先。