1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
open Array2
val x = ref 0
val i2s = Int.toString
fun test trv =
let
val a =
tabulate trv
(3, 4, fn (r, c) =>
(x := !x + 1
; concat["(", i2s r, ", ", i2s c, ", ", i2s(!x), ")"]))
val _ = app trv (fn s => (print s; print "\n")) a
in ()
end
val _ = (test RowMajor; test ColMajor)
(* Check that Size is correctly raised when constructing large arrays. *)
val m = valOf Int.maxInt
val _ =
(array (m, 2, 13)
; print "FAIL")
handle Size => print "OK"
val _ =
(tabulate RowMajor (m, 2, fn _ => 13)
; print "FAIL")
handle Size => print "OK\n"
|