【发布时间】:2018-05-14 14:09:45
【问题描述】:
我真的不明白为什么 Prolog 只在 member/2 谓词之后打印一个空格。以下是来自我的控制台的文本。
?- member(1, [1, 2, 3]).
true .
?- string("why").
true.
这真的让我发疯了!
【问题讨论】:
-
在第一种情况下,
true是一个结果和提示,等待您输入一些内容来告诉 Prolog 下一步该做什么。我假设您显示的时间段是因为您按下了.,但您可以按下;或它期望的其他有效命令。在第二种情况下,它只是一个没有请求输入的结果。这很清楚。无需恐慌。只是呼吸...... -
非常感谢您的解释!我正在写一个解析器,我认为这真的会混淆字符解析,但幸运的是事实并非如此!
-
是的,在这里您只是在处理人工交互的产物。在程序中调用时,谓词不会真正返回您看到的结果。它们只是直观地指示用户谓词调用的成功或失败。
标签: prolog swi-prolog prolog-toplevel