如何在Prolog调试/追踪模式下实现无点号的逐行输出?
Prolog调试输出格式调整方案
针对你的需求,确实存在对应的Prolog标志来调整调试输出的格式,以下是具体实现方案:
1. 实现逐行完整打印
调试输出的完整性和换行行为由debugger_write_options标志控制,通过添加max_depth(0)取消深度限制、spacing(next_line)强制逐行输出,即可实现内容完整且逐行打印:
set_prolog_flag(debugger_write_options, [max_depth(0), spacing(next_line)]).
2. 移除末尾点号
调试输出末尾的点号由debugger_print_options中的dot(true)选项控制,移除该选项即可去掉点号。默认配置通常包含[quoted(true), portray(true), dot(true)],可重新设置为:
set_prolog_flag(debugger_print_options, [quoted(true), portray(true)]).
组合设置(同时满足两项需求)
将两个标志的配置合并执行,即可一次性实现完整逐行打印且无末尾点号的调试输出:
set_prolog_flag(debugger_write_options, [max_depth(0), spacing(next_line)]), set_prolog_flag(debugger_print_options, [quoted(true), portray(true)]).
注意:不同Prolog实现(如SWI-Prolog、GNU Prolog)的默认标志配置可能略有差异,若不确定当前配置,可通过current_prolog_flag(debugger_write_options, Opts)和current_prolog_flag(debugger_print_options, Opts)查询后再针对性调整。
内容的提问来源于stack exchange,提问作者Martin Kunze
相关产品推荐
相关产品推荐

