Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: dormycom en 27 Marzo 2015, 19:57 pm



Título: problema lisp
Publicado por: dormycom en 27 Marzo 2015, 19:57 pm
Hola a todos, quería comentaros el siguiente problema que me ha surgido al programar las torres de hanoi en lisp.

Usando el siguiente código consigo obtener el resultado final, pero no los intermedios, los cuales me gustaria ver.

Código
  1. (defun mover-disco (origen destino estado)
  2.  (let
  3.      ((disco (primero-estado-torre estado origen))
  4.      (estadoaux (eliminar-disco-torre estado origen)))
  5.  (aniadir-disco-torre estadoaux destino disco)))
  6.  
  7. (defun mover-torre (num origen estadoaux destino estado)
  8.  (if (= num 1)
  9.    (mover-disco origen destino estado)
  10.   (mover-torre (- num 1) estadoaux origen destino
  11.                 (mover-disco origen destino
  12.                              (mover-torre (- num 1) origen destino estadoaux estado)))))

Tendría que modificar la funcion mover-disco para que cada vez que se invoque saque por pantalla "estado" que es una lista de listas.
A ver si me podeis sugerir alguna solucion  :-\ :-\ ;-)

Gracias y un saludo :)