我的Prolog系列树程序输出/返回重复的名称

时间:2017-11-15 20:36:46

标签: prolog

我正在prolog中开发一个家谱(皇家)实现,而且我对prolog很新。所以每当我跑:

| ?- brother_in_law(Who, diana).

Who = andrew ? ;

Who = andrew ? ;

Who = edward ? ;

Who = edward ? ;

no

正如你所看到的,我得到了这些重复的答案,我想知道这是正常的,或者我做错了什么?我如何解决它?任何帮助,将不胜感激。

这是我对brother_in_law的谓词:

brother_in_law(B, X) :- male(B), brother(B, M), spouse(X, M).

兄弟的谓词:

brother(X, Y) :- male(X), sibling(X, Y).

最终谓词兄弟姐妹:

sibling(X, Y) :- child(X, P), child(Y, P), X \= Y. 

然后我还有其他事实,如男性(爱德华),女性(戴安娜)和配偶(戴安娜,查尔斯)等。

0 个答案:

没有答案