我想知道从外壳调用它,当一个人如何会从SWI-Prolog的输出。
说我有一个简单的知识基础, kb.pl
:
dad(elvis, lisaMarie).
dad(john, julian).
我可以从shell调用SWI-Prolog的:
$ swipl --quiet -s kb.pl -t listing
和我的知识基础上的列表打印到stdout
。 如果我试试这个:
$ swipl --quiet -s kb.pl -t "dad(elvis, X)"
$ echo $?
0
无输出打印,但我知道它找到的匹配,因为我得到零当我再查询返回代码。 同理:
$ swipl --quiet -s kb.pl -t "dad(morrisey, X)"
$ echo $?
1
可见的是,Prolog是正确没有找到匹配的事实。
我的问题是:我如何获得的所有比赛进行打印,这样从壳我可以看到我在Prolog的环境时,像输出? 例如
$ swipl --quiet -s kb.pl -t "dad(elvis,X)" --magicdust
X = lisaMarie.
我不认为--quiet
是问题。 它只是抑制序言启动消息。 见SWI-Prolog的命令行选项