Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | open Array2 |
2 | ||
3 | fun printa a = | |
4 | let val (rows, cols) = dimensions a | |
5 | fun loopRows r = | |
6 | if r = rows | |
7 | then () | |
8 | else (let | |
9 | fun loopCols c = | |
10 | if c = cols | |
11 | then () | |
12 | else (print(Int.toString(sub(a, r, c))) ; | |
13 | print " " ; | |
14 | loopCols(c + 1)) | |
15 | in loopCols 0 | |
16 | end; | |
17 | print "\n"; | |
18 | loopRows(r + 1)) | |
19 | in loopRows 0 | |
20 | end | |
21 | ||
22 | val a1 = array(4, 5, 13) | |
23 | val _ = (printa a1; | |
24 | modifyi RowMajor (fn (x, y, _) => x + y) | |
25 | {base = a1, row = 0, col = 0, nrows = NONE, ncols = NONE}; | |
26 | printa a1) | |
27 | ||
28 | val a2 = fromList[[1, 2], [3, 4], [5, 6]] | |
29 | val _ = printa a2 | |
30 | ||
31 | fun bogus l = (fromList l; false) handle Size => true | |
32 | ||
33 | val _ = (bogus[[1], [2, 3]]; | |
34 | bogus[[], [1]]) | |
35 | ||
36 | val a3 = | |
37 | let val r = ref 0 | |
38 | in tabulate RowMajor (3, 3, fn _ => (r := !r + 1 ; !r)) | |
39 | end | |
40 | val _ = printa a3 | |
41 | ||
42 | val a4 = | |
43 | let val r = ref 0 | |
44 | in tabulate ColMajor (3, 3, fn _ => (r := !r + 1 ; !r)) | |
45 | end | |
46 | val _ = printa a4 |