Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | fun test (f, a, r) = |
2 | if f a = r | |
3 | then () | |
4 | else raise Fail "bug" | |
5 | ||
6 | val rec f = | |
7 | fn 0 => 0 | |
8 | | 1 => 1 | |
9 | | 2 => 2 | |
10 | | i => f (i - 1) | |
11 | ||
12 | val _ = test (f, 100, 2) | |
13 | ||
14 | val rec f: word -> int = | |
15 | fn 0w0 => 0 | |
16 | | 0w1 => 1 | |
17 | | 0w2 => 2 | |
18 | | w => f (w - 0w1) | |
19 | ||
20 | val _ = test (f, 0w100, 2) | |
21 | ||
22 | val rec f: Word8.word -> int = | |
23 | fn 0w0 => 0 | |
24 | | 0w1 => 1 | |
25 | | 0w2 => 2 | |
26 | | w => f (w - 0w1) | |
27 | ||
28 | val _ = test (f, 0w100, 2) | |
29 | ||
30 | val rec f: char -> int = | |
31 | fn #"a" => 0 | |
32 | | #"b" => 1 | |
33 | | #"c" => 2 | |
34 | | _ => f #"c" | |
35 | ||
36 | val _ = test (f, #"d", 2) |