blob: 59e3d1026e53746e13b099614fb11d9176b65055 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
(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)
|