For those of you that don't mind a little insecurity if only your vector accesses don't have bounds checks, here are some unchecked operations on vectors.
These operations work on ordinary vectors, so you can mix checked and unchecked operations on the same vectors.
In an ideal world (which we're working on, in principle) the compiler would let you use the ordinary checked operations and then optimize the checks away in a safe and efficient manner.
val sub : (vector * int) -> elem
val update : (vector * int * elem) -> unit
val create : int -> vector
sub (vec, i)
update (vec, i, el)
This operation is particularly unsafe, even if i is in range, because the compiler performs other optimizations on vectors based on the fact that their contents are immutable.
MONO_VECTOR, UNSAFE_MONO_ARRAY, Unsafe.Vector
Last Modified October 28, 1997
Comments to email@example.com
Copyright © 1998 Bell Labs, Lucent Technologies