www visit swi que org online instalar espaƱol prolog swi-prolog prolog-toplevel

visit - swi prolog online



SWI-Prolog-mostrar lista larga (4)

Eche un vistazo a: http://www.swi-prolog.org/FAQ/AllOutput.html

La solución simple es escribir w después de dar la respuesta, es decir:

?- 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]

Después de presionar la tecla "w" "[escribir]" se muestra al final y la solución completa aparece en la siguiente línea.

Estoy usando SWI-Prolog y estoy tratando de imprimir una lista, pero si la lista tiene más de 9 elementos, parece que -

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

¿Hay alguna manera de mostrar la lista completa?


He encontrado dos formas.

1.

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

Luego haga su comando que está imprimiendo una lista truncada.

( documentación de set_prolog_flag )

2.

?- atom_chars(goodbye_prolog, X) ; true.

( http://www.swi-prolog.org/FAQ/AllOutput.html )

Poner ; true. al final de la llamada que resulta en una larga lista. Luego presione la tecla w en su teclado. El resultado es:

?- 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.


Si el prólogo solo devuelve una respuesta, puede hacerlo esperar escribiendo "; verdadero". despues del predicado Luego, si presiona "w", verá la lista completa como está escrita en el documento: http://www.swi-prolog.org/FAQ/AllOutput.html


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

lo hará lo suficientemente bien. Eso es lo que hago.

Variación:

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

El argumento [] para print_term es una lista (vacía) de opciones. Para más información, ver documentación .