problema lisp

Iniciado por dormycom, 27 Marzo 2015, 19:57 PM

0 Miembros y 1 Visitante están viendo este tema.

dormycom

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 (lisp) [Seleccionar]
(defun mover-disco (origen destino estado)
 (let
     ((disco (primero-estado-torre estado origen))
     (estadoaux (eliminar-disco-torre estado origen)))
 (aniadir-disco-torre estadoaux destino disco)))

(defun mover-torre (num origen estadoaux destino estado)
 (if (= num 1)
   (mover-disco origen destino estado)
  (mover-torre (- num 1) estadoaux origen destino
                (mover-disco origen destino
                             (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 :)