human(Who).
当我对以下.pl
文件运行查询时
human(ann).
human(george).
human(mike).
我只回来Who = ann .
代替
Who = ann ;
Who = george ;
Who = mike.
我正在使用序言 6.6.6。如何让它显示完整列表?
human(Who).
当我对以下.pl
文件运行查询时
human(ann).
human(george).
human(mike).
我只回来Who = ann .
代替
Who = ann ;
Who = george ;
Who = mike.
我正在使用序言 6.6.6。如何让它显示完整列表?
你得到的答案如下。你注意到点之前的空格了吗?
Who = ann .
^ SPACE!!!
该空格表示:查询已中止。也许你输入了return。或者,也许您有一个配置不正确的终端。
为了更好地检查这一点,请尝试:
?- X = 1 ; X = 2 ; X = 3.
在那里你也应该得到所有三个答案。如果不是,那肯定是你的终端
您看到的是 prolog 的默认行为。
查询
?- findall(Object,Goal,List).
应该为你工作。
例如。
findall(X, human(X), L).
它将用所有可能的答案填充列表。