[ create a new paste ] login | about

Project: programmingpraxis
Link: http://programmingpraxis.codepad.org/F8eo5XvG    [ raw code | output | fork ]

programmingpraxis - Scheme, pasted on Oct 7:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
; tower of hanoi

(define (move ring from to)
  (display "Move ring ")
  (display ring)
  (display " from tower ")
  (display from)
  (display " to tower ")
  (display to)
  (newline))

(define (hanoi ring from to helper)
  (cond ((= ring 1) (move ring from to))
  (else (hanoi (- ring 1) from helper to)
        (move ring from to)
        (hanoi (- ring 1) helper to from))))

(hanoi 5 'A 'B 'C)


Output:
Move ring 1 from tower A to tower B
Move ring 2 from tower A to tower C
Move ring 1 from tower B to tower C
Move ring 3 from tower A to tower B
Move ring 1 from tower C to tower A
Move ring 2 from tower C to tower B
Move ring 1 from tower A to tower B
Move ring 4 from tower A to tower C
Move ring 1 from tower B to tower C
Move ring 2 from tower B to tower A
Move ring 1 from tower C to tower A
Move ring 3 from tower B to tower C
Move ring 1 from tower A to tower B
Move ring 2 from tower A to tower C
Move ring 1 from tower B to tower C
Move ring 5 from tower A to tower B
Move ring 1 from tower C to tower A
Move ring 2 from tower C to tower B
Move ring 1 from tower A to tower B
Move ring 3 from tower C to tower A
Move ring 1 from tower B to tower C
Move ring 2 from tower B to tower A
Move ring 1 from tower C to tower A
Move ring 4 from tower C to tower B
Move ring 1 from tower A to tower B
Move ring 2 from tower A to tower C
Move ring 1 from tower B to tower C
Move ring 3 from tower A to tower B
Move ring 1 from tower C to tower A
Move ring 2 from tower C to tower B
Move ring 1 from tower A to tower B


Create a new paste based on this one


Comments: