如果我分配类似的东西
process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
,那么它的输出为
A = [[baby],[boy],[[is]dancing],[with],[[..][..]]].
我希望它显示终端上的所有值。就像是
A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
如果我分配类似的东西
process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
,那么它的输出为
A = [[baby],[boy],[[is]dancing],[with],[[..][..]]].
我希望它显示终端上的所有值。就像是
A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
问题是顶层在显示时会截断列表。您可以使用 prolog 标志配置最大嵌套的深度toplevel_print_option
,使用 option max_depth(0)
,其中 0 表示显示所有内容。
辅助程序将修改 prolog 标志以仅将 max_depth 更改为 0,而其他选项保持不变:
set_toplevel_flags:-
current_prolog_flag(toplevel_print_options, Opts),
(select(max_depth(_), Opts, TOpts) -> NOpts=TOpts ; NOpts=Opts),
set_prolog_flag(toplevel_print_options, [max_depth(0)|NOpts]).
使用带有标志的current_prolog_flag/2
谓词。toplevel_print_options
像这样的东西:
?- current_prolog_flag(toplevel_print_options, X). X = [quoted(true), portray(true), max_depth(10), spacing(next_argument)].
您可以修改max_depth
选项值,或者您可以在获得缩写答案后键入w ,prolog 将完整打印答案。按p将恢复原始格式。要在打印答案后让 Prolog 等待您的输入,您可能希望通过附加; true.
到查询中添加一些不确定性。有关更多信息,请参见此处。