Make.FallbackArray
This module implements arrays equipped with accessors that cannot raise exceptions. Reading out of the bounds of the arrays return a fallback value fixed at array construction time, writing out of the bounds of the arrays is ignored.
val make : int -> 'a -> 'a t
make len v
builds an array a
initialized len
cells with v
. The value v
is the fallback value for a
.
val fallback : 'a t -> 'a
fallback a
returns the fallback value for a
.
val length : 'a t -> int
length a
returns the length of a
.
val get : 'a t -> int -> 'a
get a idx
returns the contents of the cell of index idx
in a
. If idx
< 0 or idx
>= length a
, get a idx
= fallback a
.
val set : 'a t -> int -> 'a -> unit
set a idx value
updates the cell of index idx
with value
. If idx
< 0 or idx
>= length a
, a
is unchanged.
val iter : ('a -> unit) -> 'a t -> unit
iter f a
iterates f
over the cells of a
from the cell indexed 0
to the cell indexed length a - 1
.
map f a
computes a new array obtained by applying f
to each cell contents of a
. Notice that the fallback value of the new array is f (fallback a)
.
val fold : ('b -> 'a -> 'b) -> 'a t -> 'b -> 'b
fold a init f
traverses a
from the cell indexed 0
to the cell indexed length a - 1
and transforms accu
into f accu x
where x
is the content of the cell under focus. accu
is init
on the first iteration.