dwww Home | Manual pages | Find package

Stdlib.Array(3o)                 OCaml library                Stdlib.Array(3o)

NAME
       Stdlib.Array - no description

Module
       Module   Stdlib.Array

Documentation
       Module Array
        : (module Stdlib__Array)

       type 'a t = 'a array

       An alias for the type of arrays.

       val length : 'a array -> int

       Return the length (number of elements) of the given array.

       val get : 'a array -> int -> 'a

       get  a  n  returns the element number n of array a .  The first element
       has number 0.  The last element has number length a - 1 .  You can also
       write a.(n) instead of get a n .

       Raises Invalid_argument if n is outside the range 0 to (length a - 1) .

       val set : 'a array -> int -> 'a -> unit

       set  a n x modifies array a in place, replacing element number n with x
       .  You can also write a.(n) <- x instead of set a n x .

       Raises Invalid_argument if n is outside the range 0 to length a - 1 .

       val make : int -> 'a -> 'a 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 or n > Sys.max_array_length .  If  the
       value  of  x  is a floating-point number, then the maximum size is only
       Sys.max_array_length / 2 .

       val create : int -> 'a -> 'a array

       Deprecated.

       create is an alias for Array.make .

       val create_float : int -> float array

       create_float n returns a fresh float array of length n  ,  with  unini-
       tialized data.

       Since 4.03

       val make_float : int -> float array

       Deprecated.

       make_float is an alias for Array.create_float .

       val init : int -> (int -> 'a) -> 'a array

       init n f returns a fresh array of length n , with element number i ini-
       tialized to the result of f i .  In other terms, init n f tabulates the
       results of f applied to the integers 0 to n-1 .

       Raises  Invalid_argument if n < 0 or n > Sys.max_array_length .  If the
       return type of f is float , then the maximum size is  only  Sys.max_ar-
       ray_length / 2 .

       val make_matrix : int -> int -> 'a -> 'a array 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 or dimy is  negative  or  greater  than
       Sys.max_array_length  .   If the value of e is a floating-point number,
       then the maximum size is only Sys.max_array_length / 2 .

       val create_matrix : int -> int -> 'a -> 'a array array

       Deprecated.

       create_matrix is an alias for Array.make_matrix .

       val append : 'a array -> 'a array -> 'a array

       append v1 v2 returns a fresh array containing the concatenation of  the
       arrays v1 and v2 .

       Raises Invalid_argument if length v1 + length v2 > Sys.max_array_length
       .

       val concat : 'a array list -> 'a array

       Same as Array.append , but concatenates a list of arrays.

       val sub : 'a array -> int -> int -> 'a array

       sub a pos len returns a fresh array of length len , containing the ele-
       ments number pos to pos + len - 1 of array a .

       Raises  Invalid_argument if pos and len do not designate a valid subar-
       ray of a ; that is, if pos < 0 , or len < 0 , or pos + len > length a .

       val copy : 'a array -> 'a array

       copy a returns a copy of a , that is, a fresh array containing the same
       elements as a .

       val fill : 'a array -> int -> int -> 'a -> unit

       fill  a  pos len x modifies the array a in place, storing x in elements
       number pos to pos + len - 1 .

       Raises Invalid_argument if pos and len do not designate a valid  subar-
       ray of a .

       val blit : 'a array -> int -> 'a array -> int -> int -> unit

       blit  src  src_pos dst dst_pos len copies len elements from array src ,
       starting at element number src_pos , to array dst , starting at element
       number  dst_pos  .  It works correctly even if src and dst are the same
       array, and the source and destination chunks overlap.

       Raises Invalid_argument if src_pos and len do  not  designate  a  valid
       subarray of src , or if dst_pos and len do not designate a valid subar-
       ray of dst .

       val to_list : 'a array -> 'a list

       to_list a returns the list of all the elements of a .

       val of_list : 'a list -> 'a array

       of_list l returns a fresh array containing the elements of l .

       Raises Invalid_argument if the length of l is greater than  Sys.max_ar-
       ray_length .

   Iterators
       val iter : ('a -> unit) -> 'a array -> unit

       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.(length a - 1); () .

       val iteri : (int -> 'a -> unit) -> 'a array -> unit

       Same as Array.iter , but the function is applied to the  index  of  the
       element as first argument, and the element itself as second argument.

       val map : ('a -> 'b) -> 'a array -> 'b array

       map f a applies function f to all the elements of a , and builds an ar-
       ray with the results returned by f :  [|  f  a.(0);  f  a.(1);  ...;  f
       a.(length a - 1) |] .

       val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array

       Same as Array.map , but the function is applied to the index of the el-
       ement as first argument, and the element itself as second argument.

       val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a

       fold_left f init a computes f  (...  (f  (f  init  a.(0))  a.(1))  ...)
       a.(n-1) , where n is the length of the array a .

       val  fold_left_map : ('a -> 'b -> 'a * 'c) -> 'a -> 'b array -> 'a * 'c
       array

       fold_left_map is a combination of Array.fold_left  and  Array.map  that
       threads an accumulator through calls to f .

       Since 4.13.0

       val fold_right : ('b -> 'a -> 'a) -> 'b array -> 'a -> 'a

       fold_right  f  a  init computes f a.(0) (f a.(1) ( ... (f a.(n-1) init)
       ...))  , where n is the length of the array a .

   Iterators on two arrays
       val iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit

       iter2 f a b applies function f to all the elements of a and b .

       Since 4.03.0 (4.05.0 in ArrayLabels)

       Raises Invalid_argument if the arrays are not the same size.

       val map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c 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.(length a - 1) b.(length b - 1)|] .

       Since 4.03.0 (4.05.0 in ArrayLabels)

       Raises Invalid_argument if the arrays are not the same size.

   Array scanning
       val for_all : ('a -> bool) -> 'a array -> bool

       for_all f [|a1; ...; an|] checks if all elements of the  array  satisfy
       the predicate f . That is, it returns (f a1) && (f a2) && ... && (f an)
       .

       Since 4.03.0

       val exists : ('a -> bool) -> 'a array -> bool

       exists f [|a1; ...; an|] checks if at least one element  of  the  array
       satisfies the predicate f . That is, it returns (f a1) || (f a2) || ...
       || (f an) .

       Since 4.03.0

       val for_all2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool

       Same as Array.for_all , but for a two-argument predicate.

       Since 4.11.0

       Raises Invalid_argument if the two arrays have different lengths.

       val exists2 : ('a -> 'b -> bool) -> 'a array -> 'b array -> bool

       Same as Array.exists , but for a two-argument predicate.

       Since 4.11.0

       Raises Invalid_argument if the two arrays have different lengths.

       val mem : 'a -> 'a array -> bool

       mem a set is true if and only if a is structurally equal to an  element
       of l (i.e. there is an x in l such that compare a x = 0 ).

       Since 4.03.0

       val memq : 'a -> 'a array -> bool

       Same  as  Array.mem  , but uses physical equality instead of structural
       equality to compare list elements.

       Since 4.03.0

       val find_opt : ('a -> bool) -> 'a array -> 'a option

       find_opt f a returns the first element of the array  a  that  satisfies
       the  predicate f , or None if there is no value that satisfies f in the
       array a .

       Since 4.13.0

       val find_map : ('a -> 'b option) -> 'a array -> 'b option

       find_map f a applies f to the elements of a in order, and  returns  the
       first result of the form Some v , or None if none exist.

       Since 4.13.0

   Arrays of pairs
       val split : ('a * 'b) array -> 'a array * 'b array

       split [|(a1,b1); ...; (an,bn)|] is ([|a1; ...; an|], [|b1; ...; bn|]) .

       Since 4.13.0

       val combine : 'a array -> 'b array -> ('a * 'b) array

       combine  [|a1; ...; an|] [|b1; ...; bn|] is [|(a1,b1); ...; (an,bn)|] .
       Raise Invalid_argument if the two arrays have different lengths.

       Since 4.13.0

   Sorting
       val sort : ('a -> 'a -> int) -> 'a array -> unit

       Sort an array in increasing order according to a  comparison  function.
       The  comparison  function  must  return  0  if its arguments compare as
       equal, a positive integer if the first is greater, and a negative inte-
       ger  if  the first is smaller (see below for a complete specification).
       For example, compare is a suitable comparison function.  After  calling
       sort , the array is sorted in place in increasing order.  sort is guar-
       anteed to run in constant heap space and (at  most)  logarithmic  stack
       space.

       The  current  implementation uses Heap Sort.  It runs in constant stack
       space.

       Specification of the comparison function: Let a be the  array  and  cmp
       the  comparison function.  The following must be true for all x , y , z
       in a :

       - cmp x y > 0 if and only if cmp y x < 0

       -  if cmp x y >= 0 and cmp y z >= 0 then cmp x z >= 0

       When sort returns, a contains the same elements as before, reordered in
       such a way that for all i and j valid indices of a :

       - cmp a.(i) a.(j) >= 0 if and only if i >= j

       val stable_sort : ('a -> 'a -> int) -> 'a array -> unit

       Same  as  Array.sort  , but the sorting algorithm is stable (i.e.  ele-
       ments that compare equal are kept in  their  original  order)  and  not
       guaranteed to run in constant heap space.

       The  current  implementation uses Merge Sort. It uses a temporary array
       of length n/2 , where n is the length of  the  array.   It  is  usually
       faster than the current implementation of Array.sort .

       val fast_sort : ('a -> 'a -> int) -> 'a array -> unit

       Same  as Array.sort or Array.stable_sort , whichever is faster on typi-
       cal input.

   Arrays and Sequences
       val to_seq : 'a array -> 'a Seq.t

       Iterate on the array, in increasing order. Modifications of  the  array
       during iteration will be reflected in the sequence.

       Since 4.07

       val to_seqi : 'a array -> (int * 'a) Seq.t

       Iterate  on the array, in increasing order, yielding indices along ele-
       ments.  Modifications of the array during iteration will  be  reflected
       in the sequence.

       Since 4.07

       val of_seq : 'a Seq.t -> 'a array

       Create an array from the generator

       Since 4.07

OCamldoc                          2023-02-12                  Stdlib.Array(3o)

Generated by dwww version 1.15 on Thu Jun 20 11:42:15 CEST 2024.