(define (tower-of-hanoi n von nach zwi)
; Eingabe : n    = Anzahl der Scheiben
;           von  = Name des Startstapels
;           nach = Name des Zielstapels
;           zwi  = Name des Zwischenstapels
  (cond ((= n 1) (move-disk von nach))   ; Einfache Lsung fr eine Scheibe
        (T       (tower-of-hanoi (-1+ n) von zwi nach)
                 (move-disk von nach)
                 (tower-of-hanoi (-1+ n) zwi nach von))))

(define (move-disk von nach)
; Ausgabe der Scheibenbewegung
  (print (list 'bewege 'scheibe 'von von 'nach nach)))

;---------------------------------------------------------------------------
;
; Beispiel:
;
;       (tower-of-hanoi 3 'A 'B 'C)     -->"Ausgabe der Scheibenbewegungen"
;
;---------------------------------------------------------------------------
                                           
