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.

War es hilfreich?

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
scroll top