Up – core_kernel » Balanced_reducerModule Balanced_reducer
A Balanced_reducer.t
stores a mutable fixed-length sequence of optional values, and incrementally maintains the result of folding an associative operation (reduce
) over the sequence as its elements change.
type 'a t
val create_exn : ?sexp_of_a:('a -> Base.Sexp.t ) -> Base.unit -> len:Base.int -> reduce:('a -> 'a -> 'a ) -> 'a t
create_exn ~len ~reduce
creates a balanced reducer of length len
, all of whose elements are None
. It raises if len < 1
.
val set_exn : 'a t -> Base.int -> 'a -> Base.unit
set_exn t i a
updates the value at index i
to Some a
. It raises if i
is out of bounds.
val get_exn : 'a t -> Base.int -> 'a
get_exn t i
gets the value at index i
. It raises if i
is out of bounds, or set_exn t i
has never been called.
val compute_exn : 'a t -> 'a
compute_exn t
computes the value of the fold. It raises if any values of the array are None
.