Fixed-length, mutable vector of elements with O(1) get
and set
operations.
This module extends Base.Array
.
The Array
typetype 'a t = 'a Base .Array.t
include Bin_prot .Binable.S1 with type 'a t := 'a t
val bin_shape_t : Bin_prot__ .Shape.t -> Bin_prot__ .Shape.t
val bin_size_t : ('a , 'a t ) Bin_prot__ .Size.sizer1
val bin_write_t : ('a , 'a t ) Bin_prot__ .Write.writer1
val bin_read_t : ('a , 'a t ) Bin_prot__ .Read.reader1
val __bin_read_t__ : ('a , int -> 'a t ) Bin_prot__ .Read.reader1
val bin_writer_t : ('a , 'a t ) Bin_prot__ .Type_class.S1.writer
val bin_reader_t : ('a , 'a t ) Bin_prot__ .Type_class.S1.reader
val bin_t : ('a , 'a t ) Bin_prot__ .Type_class.S1.t
include Ppx_quickcheck_runtime .Quickcheckable.S1 with type 'a t := 'a t
val quickcheck_generator :
'a Base_quickcheck .Generator.t ->
'a t Base_quickcheck .Generator.t
val quickcheck_observer :
'a Base_quickcheck .Observer.t ->
'a t Base_quickcheck .Observer.t
val quickcheck_shrinker :
'a Base_quickcheck .Shrinker.t ->
'a t Base_quickcheck .Shrinker.t
include Typerep_lib .Typerepable.S1 with type 'a t := 'a t
val typerep_of_t :
'a Typerep_lib .Std_internal.Typerep.t ->
'a t Typerep_lib .Std_internal.Typerep.t
val typename_of_t : 'a Typerep_lib .Typename.t -> 'a t Typerep_lib .Typename.t
The signature included from Base.Array
val compare :
'a Base__Ppx_compare_lib .compare ->
'a t Base__Ppx_compare_lib .compare
val globalize : ('a -> 'a ) -> 'a t -> 'a t
val t_of_sexp : (Sexplib0__ .Sexp.t -> 'a ) -> Sexplib0__ .Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib0__ .Sexp.t) -> 'a t -> Sexplib0__ .Sexp.t
val t_sexp_grammar : 'a Sexplib0 .Sexp_grammar.t -> 'a t Sexplib0 .Sexp_grammar.t
val binary_search : ('a t , 'a , 'key ) Base__Binary_searchable_intf .binary_search
val binary_search_segmented :
('a t , 'a ) Base__Binary_searchable_intf .binary_search_segmented
val of_list : 'a list -> 'a t
val of_array : 'a array -> 'a t
val append : 'a t -> 'a t -> 'a t
val map : 'a t -> f :('a -> 'b ) -> 'b t
val filter : 'a t -> f :('a -> bool) -> 'a t
val filter_map : 'a t -> f :('a -> 'b option ) -> 'b t
val concat_map : 'a t -> f :('a -> 'b t ) -> 'b t
val partition_tf : 'a t -> f :('a -> bool) -> 'a t * 'a t
val partition_map : 'a t -> f :('a -> ('b , 'c ) Base__ .Either0.t ) -> 'b t * 'c t
val mem : 'a t -> 'a -> equal :('a -> 'a -> bool) -> bool
val is_empty : 'a t -> bool
val iter : 'a t -> f :('a -> unit) -> unit
val fold : 'a t -> init :'acc -> f :('acc -> 'a -> 'acc ) -> 'acc
val fold_result :
'a t ->
init :'acc ->
f :('acc -> 'a -> ('acc , 'e ) Base__ .Result.t ) ->
('acc , 'e ) Base__ .Result.t
val fold_until :
'a t ->
init :'acc ->
f :('acc -> 'a -> ('acc , 'final ) Base__Container_intf .Continue_or_stop.t ) ->
finish :('acc -> 'final ) ->
'final
val exists : 'a t -> f :('a -> bool) -> bool
val for_all : 'a t -> f :('a -> bool) -> bool
val count : 'a t -> f :('a -> bool) -> int
val sum :
(module Base__Container_intf .Summable with type t = 'sum ) ->
'a t ->
f :('a -> 'sum ) ->
'sum
val find : 'a t -> f :('a -> bool) -> 'a option
val find_map : 'a t -> f :('a -> 'b option ) -> 'b option
val to_list : 'a t -> 'a list
val to_array : 'a t -> 'a array
val min_elt : 'a t -> compare :('a -> 'a -> int) -> 'a option
val max_elt : 'a t -> compare :('a -> 'a -> int) -> 'a option
val foldi : ('a t , 'a , 'b ) Base__Indexed_container_intf .foldi
val iteri : ('a t , 'a ) Base__Indexed_container_intf .iteri
val existsi : 'a t -> f :(int -> 'a -> bool) -> bool
val for_alli : 'a t -> f :(int -> 'a -> bool) -> bool
val counti : 'a t -> f :(int -> 'a -> bool) -> int
val findi : 'a t -> f :(int -> 'a -> bool) -> (int * 'a ) option
val find_mapi : 'a t -> f :(int -> 'a -> 'b option ) -> 'b option
val init : int -> f :(int -> 'a ) -> 'a t
val mapi : 'a t -> f :(int -> 'a -> 'b ) -> 'b t
val filteri : 'a t -> f :(int -> 'a -> bool) -> 'a t
val filter_mapi : 'a t -> f :(int -> 'a -> 'b option ) -> 'b t
val concat_mapi : 'a t -> f :(int -> 'a -> 'b t ) -> 'b t
val invariant : 'a Base__Invariant_intf .inv -> 'a t Base__Invariant_intf .inv
val get : 'a t -> int -> 'a
val set : 'a t -> int -> 'a -> unit
val unsafe_get : 'a t -> int -> 'a
val unsafe_set : 'a t -> int -> 'a -> unit
val create : len :int -> 'a -> 'a t
val create_local : len :int -> 'a -> 'a t
val create_float_uninitialized : len :int -> float t
val make_matrix : dimx :int -> dimy :int -> 'a -> 'a t t
val copy_matrix : 'a t t -> 'a t t
val concat : 'a t list -> 'a t
val fill : 'a t -> pos :int -> len :int -> 'a -> unit
val blit : ('a t , 'a t ) Base__Blit_intf .blit
val blito : ('a t , 'a t ) Base__Blit_intf .blito
val unsafe_blit : ('a t , 'a t ) Base__Blit_intf .blit
val sub : ('a t , 'a t ) Base__Blit_intf .sub
val subo : ('a t , 'a t ) Base__Blit_intf .subo
val folding_map : 'a t -> init :'acc -> f :('acc -> 'a -> 'acc * 'b ) -> 'b t
val folding_mapi :
'a t ->
init :'acc ->
f :(int -> 'acc -> 'a -> 'acc * 'b ) ->
'b t
val fold_map : 'a t -> init :'acc -> f :('acc -> 'a -> 'acc * 'b ) -> 'acc * 'b t
val fold_mapi :
'a t ->
init :'acc ->
f :(int -> 'acc -> 'a -> 'acc * 'b ) ->
'acc * 'b t
val fold_right : 'a t -> f :('a -> 'acc -> 'acc ) -> init :'acc -> 'acc
val sort : ?pos :int -> ?len :int -> 'a t -> compare :('a -> 'a -> int) -> unit
val stable_sort : 'a t -> compare :('a -> 'a -> int) -> unit
val is_sorted : 'a t -> compare :('a -> 'a -> int) -> bool
val is_sorted_strictly : 'a t -> compare :('a -> 'a -> int) -> bool
val merge : 'a t -> 'a t -> compare :('a -> 'a -> int) -> 'a t
val partitioni_tf : 'a t -> f :(int -> 'a -> bool) -> 'a t * 'a t
val cartesian_product : 'a t -> 'b t -> ('a * 'b ) t
val transpose : 'a t t -> 'a t t option
val transpose_exn : 'a t t -> 'a t t
val filter_opt : 'a option t -> 'a t
val iter2_exn : 'a t -> 'b t -> f :('a -> 'b -> unit) -> unit
val map2_exn : 'a t -> 'b t -> f :('a -> 'b -> 'c ) -> 'c t
val fold2_exn :
'a t ->
'b t ->
init :'acc ->
f :('acc -> 'a -> 'b -> 'acc ) ->
'acc
val for_all2_exn : 'a t -> 'b t -> f :('a -> 'b -> bool) -> bool
val exists2_exn : 'a t -> 'b t -> f :('a -> 'b -> bool) -> bool
val swap : 'a t -> int -> int -> unit
val rev_inplace : 'a t -> unit
val of_list_rev : 'a list -> 'a t
val of_list_map : 'a list -> f :('a -> 'b ) -> 'b t
val of_list_mapi : 'a list -> f :(int -> 'a -> 'b ) -> 'b t
val of_list_rev_map : 'a list -> f :('a -> 'b ) -> 'b t
val of_list_rev_mapi : 'a list -> f :(int -> 'a -> 'b ) -> 'b t
val map_inplace : 'a t -> f :('a -> 'a ) -> unit
val find_exn : 'a t -> f :('a -> bool) -> 'a
val find_map_exn : 'a t -> f :('a -> 'b option ) -> 'b
val findi_exn : 'a t -> f :(int -> 'a -> bool) -> int * 'a
val find_mapi_exn : 'a t -> f :(int -> 'a -> 'b option ) -> 'b
val find_consecutive_duplicate :
'a t ->
equal :('a -> 'a -> bool) ->
('a * 'a ) option
val reduce : 'a t -> f :('a -> 'a -> 'a ) -> 'a option
val reduce_exn : 'a t -> f :('a -> 'a -> 'a ) -> 'a
val permute :
?random_state :Base__ .Random.State.t ->
?pos :int ->
?len :int ->
'a t ->
unit
val random_element : ?random_state :Base__ .Random.State.t -> 'a t -> 'a option
val random_element_exn : ?random_state :Base__ .Random.State.t -> 'a t -> 'a
val zip : 'a t -> 'b t -> ('a * 'b ) t option
val zip_exn : 'a t -> 'b t -> ('a * 'b ) t
val unzip : ('a * 'b ) t -> 'a t * 'b t
val sorted_copy : 'a t -> compare :('a -> 'a -> int) -> 'a t
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val to_sequence : 'a t -> 'a Base__ .Sequence.t
val to_sequence_mutable : 'a t -> 'a Base__ .Sequence.t
module Private : sig ... end
ExtensionsWe add extensions for Int
and Float
arrays to make them bin-able, comparable, sexpable, and blit-able (via Blit.S
). Permissioned
provides fine-grained access control for arrays.
Operations supporting "normalized" indexes are also available.
module Float : sig ... end
val normalize : 'a t -> Base .Int.t -> Base .Int.t
normalize array index
returns a new index into the array such that if the index is less than zero, the returned index will "wrap around" -- i.e., array.(normalize array
(-1))
returns the last element of the array.
val slice : 'a t -> Base .Int.t -> Base .Int.t -> 'a t
slice t start stop
returns a new array including elements t.(start)
through t.(stop-1)
, normalized Python-style with the exception that stop = 0
is treated as stop = length t
.
val nget : 'a t -> Base .Int.t -> 'a
Array access with normalize
d index.
val nset : 'a t -> Base .Int.t -> 'a -> Base .Unit.t
Array modification with normalize
d index.
The Permissioned
module gives the ability to restrict permissions on an array, so you can give a function read-only access to an array, create an immutable array, etc.