dwww Home | Manual pages | Find package

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

NAME
       Stdlib.ArrayLabels - no description

Module
       Module   Stdlib.ArrayLabels

Documentation
       Module ArrayLabels
        : (module Stdlib__ArrayLabels)

       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 ArrayLabels.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 ArrayLabels.create_float .

       val init : int -> f:(int -> 'a) -> 'a 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, 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 : dimx:int -> dimy: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 : dimx:int -> dimy:int -> 'a -> 'a array array

       Deprecated.

       create_matrix is an alias for ArrayLabels.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 ArrayLabels.append , but concatenates a list of arrays.

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

       sub a ~pos ~len returns a fresh array of length len  ,  containing  the
       elements 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 -> pos:int -> len: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  : src:'a array -> src_pos:int -> dst:'a array -> dst_pos:int
       -> len: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 : f:('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 : f:(int -> 'a -> unit) -> 'a array -> unit

       Same  as ArrayLabels.iter , but the function is applied to the index of
       the element as first argument, and the element itself as  second  argu-
       ment.

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

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

       Same  as  ArrayLabels.map , but the function is applied to the index of
       the element as first argument, and the element itself as  second  argu-
       ment.

       val fold_left : f:('a -> 'b -> 'a) -> init:'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 : f:('a -> 'b -> 'a * 'c) -> init:'a -> 'b  array  ->
       'a * 'c array

       fold_left_map  is  a  combination of ArrayLabels.fold_left and ArrayLa-
       bels.map that threads an accumulator through calls to f .

       Since 4.13.0

       val fold_right : f:('b -> 'a -> 'a) -> 'b array -> init:'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 : f:('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.05.0

       Raises Invalid_argument if the arrays are not the same size.

       val map2 : f:('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.05.0

       Raises Invalid_argument if the arrays are not the same size.

   Array scanning
       val for_all : f:('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 : f:('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 : f:('a -> 'b -> bool) -> 'a array -> 'b array -> bool

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

       Since 4.11.0

       Raises Invalid_argument if the two arrays have different lengths.

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

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

       Since 4.11.0

       Raises Invalid_argument if the two arrays have different lengths.

       val mem : 'a -> set:'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 -> set:'a array -> bool

       Same as ArrayLabels.mem , but uses physical equality instead of  struc-
       tural equality to compare list elements.

       Since 4.03.0

       val find_opt : f:('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 : f:('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 : cmp:('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 : cmp:('a -> 'a -> int) -> 'a array -> unit

       Same as ArrayLabels.sort , but the sorting algorithm  is  stable  (i.e.
       elements  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 ArrayLabels.sort .

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

       Same as ArrayLabels.sort  or  ArrayLabels.stable_sort  ,  whichever  is
       faster on typical 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.ArrayLabels(3o)

Generated by dwww version 1.15 on Sat Jun 22 05:09:48 CEST 2024.