Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | structure Tak = |
2 | struct | |
3 | fun tak1 (x, y, z) = | |
4 | let | |
5 | fun tak2 (x, y, z) = | |
6 | if y >= x | |
7 | then z | |
8 | else | |
9 | tak1 (tak2 (x - 1, y, z), | |
10 | tak2 (y - 1, z, x), | |
11 | tak2 (z - 1, x, y)) | |
12 | in | |
13 | if y >= x | |
14 | then z | |
15 | else | |
16 | tak1 (tak2 (x - 1, y, z), | |
17 | tak2 (y - 1, z, x), | |
18 | tak2 (z - 1, x, y)) | |
19 | end | |
20 | end | |
21 | ||
22 | val rec f = | |
23 | fn 0 => () | |
24 | | ~1 => print "this branch is not taken\n" | |
25 | | n => (Tak.tak1 (18, 12, 6) ; f (n-1)) | |
26 | ||
27 | val _ = f 5000 | |
28 | ||
29 | fun uncalled () = () |