如何在Prolog中定义相对规则?

时间:2009-09-18 15:37:30

标签: prolog

如何在Prolog中定义相对规则?

这是我到目前为止所得到的:

spouce(X,Y) :-
    wife(X,Y).

spouce(X,Y) :-
    husband(X,Y).

relative-by-blood(X,Y) :-
    ancestor(Z,X),
    ancestor(Z,Y).


relative(X,Y) :-
    relative-by-blood(X,Y).

relative(X,Y) :-
    spouce(X,Y).

relative(X,Y) :-
    relative-by-blood(X,Z), %<- not sure what to do here.

提前致谢!

1 个答案:

答案 0 :(得分:1)

嗯,对于初学者,我认为您需要将relative(X,Y)重写为:

relative(X,Y) :- relative-by-blood(X,Y) ; spouce(X,Y).

从那里我们需要更多信息(如果我们得到更多,我会编辑添加到我的答案)。另外,您能否提供ancestor规则?