SWI-Prologを使用していて、リストを印刷しようとしていますが、リストに9つを超えるアイテムがある場合は、次のようになります。
[1, 15, 8, 22, 5, 19, 12, 25, 3|...]
リスト全体を表示する方法はありますか?
私は2つの方法を見つけました。
1.1。
?- set_prolog_flag(answer_write_options,[max_depth(0)]).
true.
次に、切り捨てられたリストを出力するコマンドを実行します。
2.2。
?- atom_chars(goodbye_prolog, X) ; true.
( AllOutputドキュメント )
プット; true.
呼び出しの最後に、長いリストになります。次に、を押します w キーボードのキー。結果は次のとおりです。
?- sudoku([_,_,2,3,_,_,_,_,_,_,_,_,3,4,_,_], Solution); true.
Solution = [4, 1, 2, 3, 2, 3, 4, 1, 1|...] [write]
Solution = [4, 1, 2, 3, 2, 3, 4, 1, 1, 2, 3, 4, 3, 4, 1, 2] ;
true.
プロローグが答えを1つだけ返す場合は、「; true」と入力して待機させることができます。述語の後。次に、「w」を押すと、ドキュメントに記載されているリスト全体が表示されます: http://www.swi-prolog.org/FAQ/AllOutput.html
?- createListSomehow(List), print(List), nl.
十分にきちんとそれをします。それが私がしていることです。
変化:
?- use_module(library(pprint)). %load a library to do pretty-printing
?- createListSomehow(List), print_term(List,[]), nl.
[]
への引数print_term
は、オプションの(空の)リストです。詳細については、 ドキュメントを参照 。