Saltar al contenido

SWI-Prolog – mostrar lista larga

Nuestros programadores estrellas han agotado sus depósitos de café, buscando día y noche por la resolución, hasta que Tomás halló el arreglo en Beanstalk y hoy la comparte contigo.

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

La solución simple es escribir w después de que se da 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 haber presionado la “w”-key “[write]” se muestra al final y la solución completa aparece en la línea siguiente.

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 set_prolog_flag)


2.

?- atom_chars(goodbye_prolog, X) ; true.

(Documentación de AllOutput)

Poner ; true. al final de la llamada que resulta en una larga lista. Luego empuja el w key en tu 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 prolog devuelve solo una respuesta, puede hacer que espere escribiendo “; true.” después del predicado. Luego, si presiona “w”, podrá ver la lista completa tal como está escrita en el documento: http://www.swi-prolog.org/FAQ/AllOutput.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *