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

Prolog not showing full list of answer

当我 运行 查询 human(Who). 下面的 .pl 文件时

human(ann).
human(george).
human(mike).

我才回来Who = ann .

而不是

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

我正在使用序言 6.6.6。如何让它显示完整列表?

您看到的是序言的默认行为。

查询

 ?-  findall(Object,Goal,List).

应该适合你。

例如。

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

它将用所有可能的答案填充列表。

您得到的答案如下。你注意到点前的 space 了吗?

Who = ann .
         ^ SPACE!!!

此space 表示:查询已中止。也许你输入了 return。或者,也许您的终端配置不当。

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

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

你也应该得到所有三个答案。如果不是,那肯定是你的终端