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

为什么SWI Prolog只给我第一个答案?,prolog,prolog-toplevel,Prolog,Prolog Toplevel,我不熟悉序言。我只是尝试简单的例子来学习。我有一个.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 . 它不是应该给出所有满足关系的组合吗 有人知道问题出在哪里吗?在第一次结果显示后不要按ente

我不熟悉序言。我只是尝试简单的例子来学习。我有一个
.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 .
它不是应该给出所有满足关系的组合吗


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

在第一次结果显示后不要按enter键,而是使用空格键

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

在第一次结果显示后,不要按enter键,请使用空格键而不是空格键。谢谢你的帮助。我加上这个作为回答,因为我觉得你不是唯一一个遇到这个问题的人。你能解释一下空格和回车之间的区别对未来的读者来说也有什么作用吗?我想这已经很清楚了,但如果没有,我希望这样可以。谢谢,谢谢你的回答。但当没有答案时,它不会说“假”。显示每个“;”的每个结果然后去。我正在试用SWI Prolog 8.2.4。