(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 ((! 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)