标题说我怎么能做到这一点? 我有这个知识库
person(alice).
person(mark).
person(sally).
likes(alice,coke).
likes(alice,fanta).
likes(alice,sprite).
likes(mark,water).
likes(mark,coffee).
likes(sally,pepsi).
而且我想输出爱丽丝喜欢的每一种不是芬达的饮料。有人可以解释如何实现它以及它为什么这样做?
答案 0 :(得分:1)
如果您输入查询likes(alice, X)
,您将获得所有喜欢的饮料,包括芬达:
?- likes(alice, X).
X = coke ;
X = fanta ;
X = sprite.
如果您将目标X \= fanta
与此相关联(注意:必须在之后),那么当X
绑定到fanta
时,它将无法实现目标{{1} },它将回溯以寻找其他选择:
X \= fanta
(注意:按?- likes(alice, X), X \= fanta.
X = coke ;
X = sprite.
进行下一个选择)
建议阅读:Proof search