prolog - 为什么SWI-Prolog只给我第一个答案?

标签 prolog prolog-toplevel

我是Prolog的新手。我只是在尝试简单的例子来学习。我有以下行的.pl文件:

parent(pam,bob).
parent(tom,bob).
parent(tom,lio).
parent(bob,ann).
parent(bob,pat).
parent(pat,jim).


经过咨询和测试,它仅显示第一个答案。例如:

5 ?- parent(X,Y).
X = pam,
Y = bob .


是否应该给出满足关系parent的所有组合?

有人知道问题出在哪里吗?

最佳答案

在您的第一个结果显示后不要按Enter键,而应使用空格键


[Enter]即使回溯尚未完成也停止执行
[Spacebar][;]继续从最后一个结果回溯到下一个结果,如果没有其他结果,则返回false

关于prolog - 为什么SWI-Prolog只给我第一个答案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34463248/

相关文章:

Prolog、predicate返回正确结果,但也有错误?

prolog - swi-prolog forall 功能不起作用

PROLOG 规则在找到第一个匹配后停止

prolog - 序言查询中的单例变量

prolog - B-Prolog 中带累加器的嵌套循环

list - Prolog 列表合并问题?

git - Gist.github 序言语法高亮

list - Prolog 错误参数

Prolog,在开始执行时写一些东西

prolog - PROLOG 查询中是/否返回