我得到了以下的问题:
定义了以下事实和谓词:
father(avr, yit).
male(avr).
married(avr, sara).
father(yit, yaak).
married(rivka, yit).
father(yaak, yosef).
mother(rachel, yosef).
father(yaak, levi).
mother(leaa, levi).
mother(zilpa, gad).
father(yaak, dan).
mother(bilhaa, dan).
father(yosef, menashe).
father(yosef, ephraim).
are_married(X,Y) :- married(X,Y).
are_married(X,Y) :- married(Y,X).
我定义了以下谓词:
married(X,Y) :- mother(X,Z) , father(Y,Z).
mother(X) :- are_married(X,Y) , father(Y,_).
现在,问题在于母亲是由婚姻定义的,婚姻是由母亲定义的 - 结果是无限循环,程序崩溃。 答案 0 :(得分:1)
为什么你需要重写母亲?
跳过
mother(X) :- are_married(X,Y) , father(Y,_).
因为你已经有了(数据定义)作为母亲。