Ханойские башни - древовидная рекурсия

Реализация по принципу сверху-вниз: решение задачи сводим к решению трёх подзадач.

(defun move (n from to spare)
  (cond ((= n 0)
         "Готово")
        (t
         (move (1- n) from spare to)
         (print "Перенести диск")
         (princ from)
         (princ " -> ")
         (princ to)
         (move (1- n) spare to from))))

(move 3 1 2 3)

Программа Эдуарда Вайтца, скомпилированная в LispWorks.

Приложение с графическим интерфейсом, демонстрирующее процесс перекладывания дисков в цвете, для любой из платформ Windows, Linux или MacOS доступно для скачивания на сайте разработчика: http://weitz.de/hanoi/.