列表截断:set_prolog_flag(toplevel_print_options,[MAX_DEPTH(100)])没有影响

问题描述:

所有关于如何禁用列表截断的问题,只好用一些这方面的variantion答案:列表截断:set_prolog_flag(toplevel_print_options,[MAX_DEPTH(100)])没有影响

?- 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)]). 

其中具有answer_write_options取代toplevel_print_options