Wie eine resultierende Liste in SWI-Prolog erweitern?
-
20-09-2019 - |
Frage
?- length(L,25).
L = [_G245, _G248, _G251, _G254, _G257, _G260, _G263, _G266, _G
269|...].
Wenn ich Schreib verwenden (L) nach der Länge Prädikat dann druckt der Interpreter die Liste zweimal, eine erweiterte und der andere nicht.
Lösung
Es gibt eine Grenze für die Tiefe zu verhindern, zu lange ausgegeben. Sie können es mit set_prolog_flag ändern / 1.
?- length(L, 25).
L = [_G257, _G260, _G263, _G266, _G269, _G272, _G275, _G278, _G281|...].
?- current_prolog_flag(toplevel_print_options, V).
V = [quoted(true), portray(true), max_depth(10), priority(699)].
?- set_prolog_flag(toplevel_print_options, [quoted(true), portray(true), max_depth(100), priority(699)]).
true.
?- length(L, 25).
L = [_G257, _G260, _G263, _G266, _G269, _G272, _G275, _G278, _G281, _G284, _G287, _G290, _G293, _G296, _G299, _G302, _G305, _G308, _G311, _G314, _G317, _G320, _G323, _G326, _G329].
Edit:. Sie können auch die Grenze vollständig entfernen, indem es aus der Optionsliste entfernen
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow