列表截断:set_prolog_flag(toplevel_print_options, [max_depth(100)]) 无效

list truncation: set_prolog_flag(toplevel_print_options, [max_depth(100)]) having no effect

关于如何禁用列表截断的所有问题都有使用此变体的答案:

?- set_prolog_flag(toplevel_print_options, [quoted(true), portray(true), max_depth(100), priority(699)]).

对我来说这不起作用,请看这里:

?- length(L, 25).
L = [_7572, _7578, _7584, _7590, _7596, _7602, _7608, _7614, _7620|...].

?- set_prolog_flag(toplevel_print_options, [quoted(true), portray(true), max_depth(1000), priority(699)]).
true.

?- length(L, 25).
L = [_7596, _7602, _7608, _7614, _7620, _7626, _7632, _7638, _7644|...].

例如根据这个答案,这应该有效:enter link description here

跟我的Prolog版本有关。我正在使用 SWI-Prolog version 7.4.2 for x86_64-darwin16.5.0。有谁知道为什么这不适用于我的版本以及如何让它工作?

您需要改用此命令:

set_prolog_flag(answer_write_options, [quoted(true), portray(true), max_depth(100), priority(699)]).

toplevel_print_options 替换为 answer_write_options