Immutable Arrays
Purely functional use of arrays. Update is costly, but reads are very fast. Sadly, it is not possible to make this type covariant without using black magic.
Array of values of type 'a. The underlying type really is an array, but it will never be modified.
It should be covariant but OCaml will not accept it.
Sourceval doubleton : 'a -> 'a -> 'a t make n x makes an array of n times x.
Sourceval init : int -> (int -> 'a) -> 'a t init n f makes the array [| f 0; f 1; ... ; f (n-1) |].
Sourceval set : 'a t -> int -> 'a -> 'a t Copy the array and modify its copy.
Sourceval sub : 'a t -> int -> int -> 'a t sub a start len returns a fresh array of length len, containing the elements from start to pstart + len - 1 of array a.
Raises Invalid_argument "Array.sub" if start and len do not designate a valid subarray of a; that is, if start < 0, or len < 0, or start + len > Array.length a.
Sourceval map : ('a -> 'b) -> 'a t -> 'b t Sourceval mapi : (int -> 'a -> 'b) -> 'a t -> 'b t Sourceval iter : ('a -> unit) -> 'a t -> unit Sourceval iteri : (int -> 'a -> unit) -> 'a t -> unit Sourceval foldi : ('a -> int -> 'b -> 'a) -> 'a -> 'b t -> 'a Sourceval fold : ('a -> 'b -> 'a) -> 'a -> 'b t -> 'a Sourceval for_all : ('a -> bool) -> 'a t -> bool Sourceval exists : ('a -> bool) -> 'a t -> bool Conversions
Sourcetype 'a sequence = ('a -> unit) -> unit Sourcetype 'a gen = unit -> 'a option Sourceval of_list : 'a list -> 'a t Sourceval to_list : 'a t -> 'a list Sourceval of_array_unsafe : 'a array -> 'a t Take ownership of the given array. Careful, the array must NOT be modified afterwards!
IO