Module CArray
module type ExtS = sig ... endinclude ExtS
include S
val length : 'a array -> intval get : 'a array -> int -> 'aval set : 'a array -> int -> 'a -> unitval make : int -> 'a -> 'a arrayval create : int -> 'a -> 'a arrayval create_float : int -> float array
val make_float : int -> float arrayval init : int -> (int -> 'a) -> 'a arrayval make_matrix : int -> int -> 'a -> 'a array arrayval create_matrix : int -> int -> 'a -> 'a array arrayval append : 'a array -> 'a array -> 'a arrayval concat : 'a array list -> 'a arrayval sub : 'a array -> int -> int -> 'a arrayval copy : 'a array -> 'a arrayval fill : 'a array -> int -> int -> 'a -> unitval blit : 'a array -> int -> 'a array -> int -> int -> unitval to_list : 'a array -> 'a listval of_list : 'a list -> 'a arrayval iter : ('a -> unit) -> 'a array -> unitval iteri : (int -> 'a -> unit) -> 'a array -> unitval map : ('a -> 'b) -> 'a array -> 'b arrayval mapi : (int -> 'a -> 'b) -> 'a array -> 'b arrayval fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'aval fold_left_map : ('a -> 'b -> 'a * 'c) -> 'a -> 'b array -> 'a * 'c arrayval fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'aval iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unitval map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c arrayval for_all : ('a -> bool) -> 'a array -> boolval exists : ('a -> bool) -> 'a array -> boolval for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> boolval exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> boolval mem : 'a -> 'a array -> boolval memq : 'a -> 'a array -> boolval find_opt : ('a -> bool) -> 'a array -> 'a optionval find_map : ('a -> 'b option) -> 'a array -> 'b optionval split : ('a * 'b) array -> 'a array * 'b arrayval combine : 'a array -> 'b array -> ('a * 'b) arrayval sort : ('a -> 'a -> int) -> 'a array -> unitval stable_sort : ('a -> 'a -> int) -> 'a array -> unitval fast_sort : ('a -> 'a -> int) -> 'a array -> unitval to_seq : 'a array -> 'a Stdlib.Seq.tval to_seqi : 'a array -> (int * 'a) Stdlib.Seq.tval of_seq : 'a Stdlib.Seq.t -> 'a array
module Floatarray : sig ... endval compare : ('a -> 'a -> int) -> 'a array -> 'a array -> intFirst size comparison, then lexicographic order.
val equal_norefl : ('a -> 'a -> bool) -> 'a array -> 'a array -> boolLike
equalbut does not assume that equality is reflexive: no optimisation is performed if both arrays are physically the same.
val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> boolval for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> boolval for_all3 : ('a -> 'b -> 'c -> bool) -> 'a array -> 'b array -> 'c array -> boolval for_all4 : ('a -> 'b -> 'c -> 'd -> bool) -> 'a array -> 'b array -> 'c array -> 'd array -> boolval for_all_i : (int -> 'a -> bool) -> int -> 'a array -> boolval findi : (int -> 'a -> bool) -> 'a array -> int optionval hd : 'a array -> 'aFirst element of an array, or
Failure "Array.hd"if empty.
val fold_right_i : (int -> 'b -> 'a -> 'a) -> 'b array -> 'a -> 'aval fold_left_i : (int -> 'a -> 'b -> 'a) -> 'a -> 'b array -> 'aval fold_right2 : ('a -> 'b -> 'c -> 'c) -> 'a array -> 'b array -> 'c -> 'cval fold_right3 : ('a -> 'b -> 'c -> 'd -> 'd) -> 'a array -> 'b array -> 'c array -> 'd -> 'dval fold_left2 : ('a -> 'b -> 'c -> 'a) -> 'a -> 'b array -> 'c array -> 'aval fold_left3 : ('a -> 'b -> 'c -> 'd -> 'a) -> 'a -> 'b array -> 'c array -> 'd array -> 'aval fold_left4 : ('a -> 'b -> 'c -> 'd -> 'e -> 'a) -> 'a -> 'b array -> 'c array -> 'd array -> 'e array -> 'aval fold_left2_i : (int -> 'a -> 'b -> 'c -> 'a) -> 'a -> 'b array -> 'c array -> 'aval fold_left_from : int -> ('a -> 'b -> 'a) -> 'a -> 'b array -> 'aval map_to_list : ('a -> 'b) -> 'a array -> 'b listComposition of
mapandto_list.
val chop : int -> 'a array -> 'a array * 'a arraychop i areturns(a1, a2)s.t.a = a1 + a2andlength a1 = n. RaiseFailure "Array.chop"ifiis not a valid index.
val split : ('a * 'b) array -> 'a array * 'b arrayval map2_i : (int -> 'a -> 'b -> 'c) -> 'a array -> 'b array -> 'c arrayval map3 : ('a -> 'b -> 'c -> 'd) -> 'a array -> 'b array -> 'c array -> 'd arrayval map3_i : (int -> 'a -> 'b -> 'c -> 'd) -> 'a array -> 'b array -> 'c array -> 'd arrayval map_left : ('a -> 'b) -> 'a array -> 'b arrayAs
mapbut guaranteed to be left-to-right.
val iter2_i : (int -> 'a -> 'b -> unit) -> 'a array -> 'b array -> unitIter on two arrays. Raise
Invalid_argument "Array.iter2_i"if sizes differ.
val iter3 : ('a -> 'b -> 'c -> unit) -> 'a array -> 'b array -> 'c array -> unitIter on three arrays. Raise
Invalid_argument "Array.iter3"if sizes differ.
val fold_left_map : ('a -> 'b -> 'a * 'c) -> 'a -> 'b array -> 'a * 'c arrayfold_left_map f e_0 [|l_1...l_n|] = e_n,[|k_1...k_n|]where(e_i,k_i)=f e_{i-1} l_i; see alsoSmart.fold_left_map
val fold_right_map : ('a -> 'c -> 'b * 'c) -> 'a array -> 'c -> 'b array * 'cSame, folding on the right
val fold_left2_map : ('a -> 'b -> 'c -> 'a * 'd) -> 'a -> 'b array -> 'c array -> 'a * 'd arraySame with two arrays, folding on the left; see also
Smart.fold_left2_map
val fold_left2_map_i : (int -> 'a -> 'b -> 'c -> 'a * 'd) -> 'a -> 'b array -> 'c array -> 'a * 'd arraySame than
fold_left2_mapbut passing the index of the array
val fold_right2_map : ('a -> 'b -> 'c -> 'd * 'c) -> 'a array -> 'b array -> 'c -> 'd array * 'cSame with two arrays, folding on the right
val distinct : 'a array -> boolReturn
trueif every element of the array is unique (for default equality).
val filter_with : bool list -> 'a array -> 'a arrayfilter_with b aselects elements ofawhose corresponding element inbistrue. RaiseInvalid_argument _when sizes differ.
module Smart : sig ... endThe functions defined in this module are optimized specializations of the main ones, when the returned array is of same type as one of the original array.
module Fun1 : sig ... endThe functions defined in this module are the same as the main ones, except that they are all higher-order, and their function arguments have an additional parameter. This allows us to prevent closure creation in critical cases.