progs/fun-tests/hanoi.fun
author Christian Urban <christian.urban@kcl.ac.uk>
Thu, 30 Jul 2020 13:50:54 +0100
changeset 742 155426396b5f
parent 706 progs/hanoi.fun@7d85a4599549
child 790 71ef7d9ef635
permissions -rw-r--r--
updated
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
706
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     1
// towers of hanoi in Fun
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     2
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     3
let rec hanoi = fun n a b c ->
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     4
  if n != 0 then (
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     5
    hanoi (n - 1) a c b;
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     6
    print_endline ("Move disk from pole " ^ (show a) ^ " to pole " ^ (show b));
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     7
    hanoi (n - 1) c b a
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     8
  ) else ();;
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
     9
7d85a4599549 updated
Christian Urban <urbanc@in.tum.de>
parents:
diff changeset
    10
impure $ hanoi 4 1 2 3;;