-
bigarray
-
dynlink
-
ocamlbytecomp
-
ocamlcommon
-
ocamlmiddleend
-
ocamloptcomp
-
odoc_info
-
raw_spacetime_lib
-
-
stdlib
-
str
-
threads
-
unix
Library
Module
Module type
Parameter
Class
Class type
Array operations.
Array.get a n
returns the element number n
of array a
. The first element has number 0. The last element has number Array.length a - 1
. You can also write a.(n)
instead of Array.get a n
.
- raises Invalid_argument
if
n
is outside the range 0 to(Array.length a - 1)
.
Array.set a n x
modifies array a
in place, replacing element number n
with x
. You can also write a.(n) <- x
instead of Array.set a n x
.
- raises Invalid_argument
if
n
is outside the range 0 toArray.length a - 1
.
Array.make n x
returns a fresh array of length n
, initialized with x
. All the elements of this new array are initially physically equal to x
(in the sense of the ==
predicate). Consequently, if x
is mutable, it is shared among all elements of the array, and modifying x
through one of the array entries will modify all other entries at the same time.
- raises Invalid_argument
if
n < 0
orn > Sys.max_array_length
. If the value ofx
is a floating-point number, then the maximum size is onlySys.max_array_length / 2
.
- deprecated
Array.create
is an alias forArray.make
.
Array.create_float n
returns a fresh float array of length n
, with uninitialized data.
- since 4.03
- deprecated
Array.make_float
is an alias forArray.create_float
.
Array.init n f
returns a fresh array of length n
, with element number i
initialized to the result of f i
. In other terms, Array.init n f
tabulates the results of f
applied to the integers 0
to n-1
.
- raises Invalid_argument
if
n < 0
orn > Sys.max_array_length
. If the return type off
isfloat
, then the maximum size is onlySys.max_array_length / 2
.
Array.make_matrix dimx dimy e
returns a two-dimensional array (an array of arrays) with first dimension dimx
and second dimension dimy
. All the elements of this new matrix are initially physically equal to e
. The element (x,y
) of a matrix m
is accessed with the notation m.(x).(y)
.
- raises Invalid_argument
if
dimx
ordimy
is negative or greater thanSys.max_array_length
. If the value ofe
is a floating-point number, then the maximum size is onlySys.max_array_length / 2
.
- deprecated
Array.create_matrix
is an alias forArray.make_matrix
.
Array.append v1 v2
returns a fresh array containing the concatenation of the arrays v1
and v2
.
- raises Invalid_argument
if
Array.length v1 + Array.length v2 > Sys.max_array_length
.
Same as Array.append
, but concatenates a list of arrays.
Array.sub a start len
returns a fresh array of length len
, containing the elements number start
to start + len - 1
of array a
.
- raises Invalid_argument
if
start
andlen
do not designate a valid subarray ofa
; that is, ifstart < 0
, orlen < 0
, orstart + len > Array.length a
.
Array.copy a
returns a copy of a
, that is, a fresh array containing the same elements as a
.
Array.fill a ofs len x
modifies the array a
in place, storing x
in elements number ofs
to ofs + len - 1
.
- raises Invalid_argument
if
ofs
andlen
do not designate a valid subarray ofa
.
Array.blit v1 o1 v2 o2 len
copies len
elements from array v1
, starting at element number o1
, to array v2
, starting at element number o2
. It works correctly even if v1
and v2
are the same array, and the source and destination chunks overlap.
- raises Invalid_argument
if
o1
andlen
do not designate a valid subarray ofv1
, or ifo2
andlen
do not designate a valid subarray ofv2
.
Array.of_list l
returns a fresh array containing the elements of l
.
- raises Invalid_argument
if the length of
l
is greater thanSys.max_array_length
.
Iterators
Array.iter f a
applies function f
in turn to all the elements of a
. It is equivalent to f a.(0); f a.(1); ...; f a.(Array.length a - 1); ()
.
Same as Array.iter
, but the function is applied with the index of the element as first argument, and the element itself as second argument.
Array.map f a
applies function f
to all the elements of a
, and builds an array with the results returned by f
: [| f a.(0); f a.(1); ...; f a.(Array.length a - 1) |]
.
Same as Array.map
, but the function is applied to the index of the element as first argument, and the element itself as second argument.
Array.fold_left f x a
computes f (... (f (f x a.(0)) a.(1)) ...) a.(n-1)
, where n
is the length of the array a
.
Array.fold_right f a x
computes f a.(0) (f a.(1) ( ... (f a.(n-1) x) ...))
, where n
is the length of the array a
.
Iterators on two arrays
Array.iter2 f a b
applies function f
to all the elements of a
and b
.
- raises Invalid_argument
if the arrays are not the same size.
- since 4.03.0
Array.map2 f a b
applies function f
to all the elements of a
and b
, and builds an array with the results returned by f
: [| f a.(0) b.(0); ...; f a.(Array.length a - 1) b.(Array.length b - 1)|]
.
- raises Invalid_argument
if the arrays are not the same size.
- since 4.03.0
Array scanning
Array.for_all p [|a1; ...; an|]
checks if all elements of the array satisfy the predicate p
. That is, it returns (p a1) && (p a2) && ... && (p an)
.
- since 4.03.0