كيفية توسيع قائمة الناتجة في Swi-Prolog؟
-
20-09-2019 - |
سؤال
?- length(L,25).
L = [_G245, _G248, _G251, _G254, _G257, _G260, _G263, _G266, _G
269|...].
إذا كنت تستخدم الكتابة (L) بعد الطول المسند ثم يطبع المترجم القائمة مرتين، تم توسيع المرء والآخر غير.
المحلول
هناك حدود على العمق لمنع الإنتاج لفترة طويلة. يمكنك تغييره مع set_prolog_flag / 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].
تعديل: يمكنك أيضا إزالة الحد المسموح به تماما عن طريق إزالته من قائمة الخيارات.
لا تنتمي إلى StackOverflow