0

私は Prolog でいくつかの単純な父/親/祖先関数を書きました。祖先以外はすべて正常に動作しています。このような ...

?- parent(abe,homer).
true.

?- parent(homer,bart).
true.

?- ancestor(abe,bart).
false.

祖先 (阿部、バート) が false を返すのはなぜですか? これが私の機能です…

%% 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 に答える