我想知道如何在不使用sibling
事实进行序言的情况下,如何在家谱中呼叫侄女或侄女。我无法通过直接打电话给叔叔来找到办法。
例如:
parent(elli, lisa).
parent(kelly, lisa).
parent(ben, claire).
parent(lisa, claire).
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).
由于艾莉或凯莉是本人的侄女,我有一个规则,当被grandparent(X, claire).
召唤时,将给予艾莉和凯莉作为claire
的孙子。我如何制定一个规则,以便能够致电niece(ben, X).
,以便它列出所有本侄女。我只能通过父事实找出一种方法来做到这一点,这样做的唯一方法就是包含一个兄弟事实,但有没有办法在没有兄弟事实的情况下做到这一点?
我对prolog很新,就像一周前一样,所以如果我不太了解它,请原谅我。
答案 0 :(得分:1)
brother(X, Y) :- male(X), parent(X, Z), parent(Y, Z), X \= Y.
uncle(X, Y) :- brother(X, Z), parent(Y, Z).