如果我分配类似的东西
process([[baby],[boy],[[is]dancing],[with],[[the][family]]],A)
,
然后它将输出作为
A = [[baby],[boy],[[is]dancing],[with],[[..][..]]].
我想让它显示终端上的所有值。
就像是
A = [[baby],[boy],[[is]dancing],[with],[[the][family]]].
答案 0 :(得分:2)
问题是顶层显示时会截断列表。
您可以使用prolog标志toplevel_print_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]).
答案 1 :(得分:2)
将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.
来为查询添加一些非确定性。有关详细信息,请参阅here。