Prolog未返回预期值

Prolog未返回预期值,prolog,Prolog,我正在努力适应Prolog(特别是SWI Prolog) 我有一个非常简单的清单: animal(bear). animal(mouse). animal(bird). 现在,每当我要求所有实现谓词的原子时(正确的表达式是什么?) 动物我总是只得到第一个 ?- animal(X). X = bear . 虽然这三个原子对动物来说都是“真的” ?- animal(mouse). true. ?- animal(bird). true. 我做错了什么?这种行为可以通过某种设置控制吗?代码中没

我正在努力适应Prolog(特别是SWI Prolog)

我有一个非常简单的清单:

animal(bear).
animal(mouse).
animal(bird).
现在,每当我要求所有实现谓词的原子时(正确的表达式是什么?) 动物我总是只得到第一个

?- animal(X).
X = bear .
虽然这三个原子对动物来说都是“真的”

?- animal(mouse).
true.

?- animal(bird).
true.

我做错了什么?这种行为可以通过某种设置控制吗?

代码中没有任何错误。Prolog是一种推理机。因此,它试图找到满足所有变量的第一个解。 一旦找到解决方案,它就会打印出来

现在,如果您需要其他解决方案,应该输入一些组合,以便prolog继续搜索。 如果我没记错的话,它可能是一个分号


希望这有帮助

按分号键
以获得进一步的答案。非常感谢Mark。分号正在执行作业:)