Module MoreArray


module MoreArray: sig .. end
Utilities for arrays.

This module provides the necessary functions for applying data structure comprehension to arrays.



Array utilities


val to_array : 'a -> 'a
Convert an array to itself.

This function does nothing. It is included for consistency.

val to_string : char array -> string
Convert an array to a string of the same size
val to_stream : 'a array -> 'a Sdflow.flow
Convert an array to a stream.

to_stream a returns a stream for reading from a. Note that this conversion is lazy. In other words, if you modify a after the conversion, the result of to_stream a may be affected.

val filter : ('a -> bool) -> 'a array -> 'a array
Build a subarray containing only elements verifying a predicate.
val flatten : 'a array array -> 'a array
Concatenate an array of arrays.
val to_lazylist : 'a array -> 'a LList.t
Convert an array to a lazy list.

to_lazylist a returns a stream for reading from a. Note that this conversion is lazy. In other words, if you modify a after the conversion, the result of to_lazylist a may be affected.

val range : int -> int -> int array
Compute a range of integers a .. b as an array.

The range is never empty. If a <= b, the range contains a, a+1 ... b. Otherwise, it contains a, a-1, ..., b.

val map_filter : ('a -> 'b option) -> 'a array -> 'b array
Lazily eliminate some elements and transform others.

map_filter f [| a1; a2; ... ;an |] applies f to each a1, ..., an. If f ai evaluates to None, the element is not included in the result. Otherwise, if f ai evaluates to Some x, element x is included in the result.

This is equivalent to Array.of_list match f a1 with | Some x1 -> x1 :: (match f a2 with |Some x2 -> x2 :: (match ... (match f an with | Some xn -> [ xn ] | None -> [ ] ) | ...) | None -> ... .

val length : 'a array -> int

Identical to module Array


val get : 'a array -> int -> 'a
val set : 'a array -> int -> 'a -> unit
val make : int -> 'a -> 'a array
val create : int -> 'a -> 'a array
val init : int -> (int -> 'a) -> 'a array
val make_matrix : int -> int -> 'a -> 'a array array
val create_matrix : int -> int -> 'a -> 'a array array
val append : 'a array -> 'a array -> 'a array
val concat : 'a array list -> 'a array
val sub : 'a array -> int -> int -> 'a array
val copy : 'a array -> 'a array
val fill : 'a array -> int -> int -> 'a -> unit
val blit : 'a array -> int -> 'a array -> int -> int -> unit
val to_list : 'a array -> 'a list
val of_list : 'a list -> 'a array
val iter : ('a -> unit) -> 'a array -> unit
val map : ('a -> 'b) -> 'a array -> 'b array
val iteri : (int -> 'a -> unit) -> 'a array -> unit
val mapi : (int -> 'a -> 'b) -> 'a array -> 'b array
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a
val fold_right : ('a -> 'b -> 'b) -> 'a array -> 'b -> 'b
val sort : ('a -> 'a -> int) -> 'a array -> unit
val stable_sort : ('a -> 'a -> int) -> 'a array -> unit
val fast_sort : ('a -> 'a -> int) -> 'a array -> unit
val unsafe_get : 'a array -> int -> 'a
val unsafe_set : 'a array -> int -> 'a -> unit