所以我对这个问题的处理是合乎逻辑的。一切都按预期工作。我的代码如下:
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.
我的问题:我得到了正确的输出,但为什么我的输出是多余的?如何将我的实现转换为单个非重复的答案?
非常感谢帮助。谢谢!
答案 0 :(得分:0)
只是一个提示:根据需要完成KB
ensured(X) :- employees(X).
ensured(X) :- employees(E), parent(E, X), age(X, A), A < 18.
...