NS.IArray
IArray - Immutable view of an array
Note that an iarray can be constructed from an array without copying, and the client might keep other references to the backing array and use them to later modify it. So IArray is not a safe immutable data structure, it only attempts to make it inconvenient to unintentionally mutate.
include Ppx_compare_lib.Comparable.S1 with type 'a t := 'a t
val compare :
'a Base__Ppx_compare_lib.compare ->
'a t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S1 with type 'a t := 'a t
val equal : 'a Base__Ppx_compare_lib.equal -> 'a t Base__Ppx_compare_lib.equal
module Import : sig ... end
val pp :
(unit, Stdlib.Format.formatter, unit, unit) Stdlib.format4 ->
(Stdlib.Format.formatter -> 'a -> unit) ->
Stdlib.Format.formatter ->
'a t ->
unit
val to_array : 'a t -> 'a array
to_array v
is the array backing v
, no copy is performed.
val of_array : 'a array -> 'a t
of_array a
is an iarray that shares its representation with array a
, therefore mutating a
changes of_array a
. The intended use for of_array
is for converting an array to an iarray when the array will not be used after conversion, or with care for multi-step initialization of an iarray.
val empty : 'a t
val of_ : 'a -> 'a t
val of_iter : (('a -> unit) -> unit) -> 'a t
val of_list : 'a list -> 'a t
val of_list_rev : 'a list -> 'a t
val init : int -> f:(int -> 'a) -> 'a t
Like map, but specialized to require f
to be an endofunction, which enables preserving ==
if f
preserves ==
of every element.
val is_empty : 'a t -> bool
val length : 'a t -> int
val get : 'a t -> int -> 'a
val to_iter : 'a t -> ('a -> unit) -> unit
val iter : 'a t -> f:('a -> unit) -> unit
val iteri : 'a t -> f:(int -> 'a -> unit) -> unit
val exists : 'a t -> f:('a -> bool) -> bool
val find : f:('a -> bool) -> 'a t -> 'a option
val find_map : 'a t -> f:('a -> 'b option) -> 'b option
val mem : 'a -> 'a t -> eq:('a -> 'a -> bool) -> bool
val for_all : 'a t -> f:('a -> bool) -> bool
val fold : 'a t -> 's -> f:('a -> 's -> 's) -> 's
val fold_right : 'a t -> 's -> f:('a -> 's -> 's) -> 's