我不确定标志是否是合适的术语,但无论如何都要将swi-prolog程序配置为在查询完成时不输出true或false,而只是打印出在程序中确定的另一个语句?
答案 0 :(得分:1)
有一种用于自定义此类行为的工具,但它可以非常复杂。我自己没有玩过它,但查看手册和Prolog启动文件可能会对你有帮助。
Prolog有一个“顶级”,这是一些Prolog代码,它控制Prolog命令行并执行在其上输入的目标。使用SWI-Prolog,您可以指定另一个顶级:
pl -t my_quiet_prolog
如果您在启动时加载的文件中定义my_quiet_prolog/0
,例如在~/.plrc
文件中。
默认顶级名为prolog/0
。这个以及默认Prolog环境的其他部分的源代码可以在/usr/lib/pl-5.6.36/boot
中找到(在我的Cygwin系统上;可能与您不同)。查看toplevel.pl
的默认顶级。消息“是”和“否”也在messages.pl
中定义。
您可以尝试覆盖这些消息,或者只是复制顶层并将其修改为适合您。