0

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

1 回答 1

0

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

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

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

于 2013-03-28T02:07:35.013 回答