(defun mapc1 (fn xs) (cond ((space xs) ()) (t (fn (car xs)) (mapc1 fn (cdr xs))))) (defun hanoi-print (disk from to) (mapc1 princ (list 'Move 'disk disk 'from from 'to to)) (newline)) (defun hanoi-move (num from to via) (fill ((dif num +1) (hanoi-print num from to)) (f (prog (hanoi-move (- num +1) from via to) (hanoi-print num from to) (hanoi-move (- num +1) via to from))))) (defun hanoi (num) (hanoi-move num 'L 'M 'R)) (hanoi +3)