2011-11-22 10 views
14

私はSWI-Prologのを使用していると私は、リストを印刷しようとしているが、リストが9つの以上のアイテムを持っている場合 -SWI-Prologの - ショー長いリスト

[1, 15, 8, 22, 5, 19, 12, 25, 3|...] 

がある - それはそのように見えます全体のリストを表示する方法? http://www.swi-prolog.org/FAQ/AllOutput.html

簡単な解決策は、すなわち、答えが与えられた後 wがを入力することです:

答えて

18

はを見てください、あなたが "W" -key「を押した

?- n_queens_problem(10,X). 
X = [1, 3, 6, 8, 10, 5, 9, 2, 4|...] [write] 
X = [1, 3, 6, 8, 10, 5, 9, 2, 4, 7] 

後に[書き込み]」が表示され、次の行に完全な解が表示されます。

+3

プロローグが1つの回答のみを返している場合、これは機能しません。 –

+2

クエリが確定的に成功した場合は、次のように書くだけです。 '? - solution(S); true '、つまり単に ';選択肢を紹介するために「真」と答えます。次に、 'w'を押す機会も得られます。 – mat

2

プロローグで返される回答が1つのみの場合は、「; true」と入力して待機させることができます。述語の後にあなたは「W」キーを押すと次に、あなたは、docに書かれたリスト全体を見るようになるだろう:http://www.swi-prolog.org/FAQ/AllOutput.html

0
?- createListSomehow(List), print(List), nl. 

はきちんと十分にそれを行います。それが私の行いなのです。

バリエーション:

?- use_module(library(pprint)). %load a library to do pretty-printing 
?- createListSomehow(List), print_term(List,[]), nl. 

print_termから[]引数はオプションの(空の)リストです。詳細については、see documentationを参照してください。

2

私は2つの方法を見つけました。

1.


?- set_prolog_flag(answer_write_options,[max_depth(0)]). 
true. 

次に切り捨てリストを印刷しているあなたのコマンドを実行します。

set_prolog_flag documentation


2.

?- atom_chars(goodbye_prolog, X) ; true. 

AllOutput documentation

長いリストになり、コールの終わりに; 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. 
関連する問題