Prolog Kbase实施

时间:2015-10-20 02:29:25

标签: prolog

enter image description here

所以我对这个问题的处理是合乎逻辑的。一切都按预期工作。我的代码如下:

employees(billSmith).
employees(bobJones).
employees(lindaHiggs).

married(billSmith,karenSmith).

parent(billSmith,tonySmith).
parent(billSmith,lauraSmith).

ensured(X) :- 
   employees(X),
   (  parent(X,_)
   ;  married(X,_)
   ).

示例查询:

?- ensured(X).
X = billSmith ;
X = billSmith ;
X = billSmith ;
false.

我的问题:我得到了正确的输出,但为什么我的输出是多余的?如何将我的实现转换为单个非重复的答案?

非常感谢帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

只是一个提示:根据需要完成KB

ensured(X) :-  employees(X).
ensured(X) :-  employees(E), parent(E, X), age(X, A), A < 18.
...