Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | datatype t = |
2 | A of int ref * int | |
3 | | B | |
4 | ||
5 | val n = 100 | |
6 | ||
7 | val a = Array.tabulate (n, fn i => | |
8 | case i mod 3 of | |
9 | 0 => B | |
10 | | 1 => A (ref 13, 14) | |
11 | | 2 => A (ref 15, 16)) | |
12 | ||
13 | val a' = | |
14 | Array.tabulate (n, fn i => | |
15 | case Array.sub (a, i) of | |
16 | B => B | |
17 | | A (r, n) => A (r, n + 1)) | |
18 | ||
19 | val _ = Array.app (fn A (r, n) => r := 17 + n + !r | B => ()) a | |
20 | ||
21 | val _ = | |
22 | case Array.sub (a', 1) of | |
23 | A (r, _) => print (concat [Int.toString (!r), "\n"]) | |
24 | | B => () |