| 
706
 | 
     1  | 
// towers of hanoi in Fun
  | 
| 
 | 
     2  | 
  | 
| 
 | 
     3  | 
let rec hanoi = fun n a b c ->
  | 
| 
 | 
     4  | 
  if n != 0 then (
  | 
| 
 | 
     5  | 
    hanoi (n - 1) a c b;
  | 
| 
 | 
     6  | 
    print_endline ("Move disk from pole " ^ (show a) ^ " to pole " ^ (show b));
 | 
| 
 | 
     7  | 
    hanoi (n - 1) c b a
  | 
| 
 | 
     8  | 
  ) else ();;
  | 
| 
 | 
     9  | 
  | 
| 
 | 
    10  | 
impure $ hanoi 4 1 2 3;;  |