Prolog没有返回预期值

时间:2012-12-06 14:37:14

标签: prolog

我正在努力使用Prolog(特别是SWI Prolog)。

我有这个非常简单的列表:

animal(bear).
animal(mouse).
animal(bird).

现在,只要我要求所有原子实现(正确的表达式是什么?)谓词 动物我总是只得到第一个。

?- animal(X).
X = bear .

虽然所有三个原子都评估为动物的“真实”。

?- animal(mouse).
true.

?- animal(bird).
true.

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

1 个答案:

答案 0 :(得分:0)

您的代码没有任何问题。 Prolog是一台推理机器。所以它试图找到满足所有变量的第一个解决方案。 一旦找到解决方案,就会将其打印出来。

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

希望这有帮助