我在想,如果不使用sibling
事实作为prolog,我怎么能在家谱中调用侄子或侄女呢?我想不出直接给他叔叔打电话的办法。
parent(elli, lisa).
parent(kelly, lisa).
parent(ben, claire).
parent(lisa, claire).
grandparent(X, Y) :- parent(X, Z), parent(Z, Y).
由于ellie或kelly是ben的侄女,我有这样的规则,当grandparent(X, claire).
调用时,将把elli和kelly作为claire
的孙子。我要如何制定规则才能调用niece(ben, X).
,这样它就会列出本的所有侄女。我想不出只有父母事实的方法,唯一的方法就是包括兄弟事实但有没有办法不包含兄弟事实呢?
我是一个新手,差不多一个星期前,所以如果我不太理解,请原谅。
brother(X, Y) :- male(X), parent(X, Z), parent(Y, Z), X = Y.
uncle(X, Y) :- brother(X, Z), parent(Y, Z).