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