Prolog没有显示完整的答案列表

时间:2016-03-20 06:01:22

标签: prolog prolog-toplevel

当我在下面的human(Who).文件

上运行查询.pl
human(ann).
human(george).
human(mike).

我只回来Who = ann .

而不是

Who = ann ;
Who = george ;
Who = mike.

使用prolog 6.6.6。如何让它显示完整列表?

2 个答案:

答案 0 :(得分:2)

你得到的答案如下。你注意到点之前的空间吗?

Who = ann .
         ^ SPACE!!!

此空格表示:查询已中止。也许你输入了回报。或许你的终端有点配置错误。

为了更好地检查这一点,请尝试:

?- X = 1 ; X = 2 ; X = 3.

你也应该得到所有三个答案。如果没有,那绝对是你的终端

答案 1 :(得分:0)

您所看到的是prolog的默认行为。

查询

 ?-  findall(Object,Goal,List).

应该适合你。

EG。

findall(X, human(X), L).

它会在列表中填入所有可能的答案。