package base

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Provides generic signatures for containers that support indexed iteration (iteri, foldi, ...). In principle, any container that has iter can also implement iteri, but the idea is that Indexed_container_intf should be included only for containers that have a meaningful underlying ordering.

module type S1 = sig ... end

Generic definitions of foldi and iteri in terms of fold.

E.g., iteri ~fold t ~f = ignore (fold t ~init:0 ~f:(fun i x -> f i x; i + 1)).

val foldi : fold:('t -> init:'accum -> f:('accum -> 'a -> 'accum) -> 'accum) -> 't -> init:'accum -> f:(int -> 'accum -> 'a -> 'accum) -> 'accum
val iteri : fold:('t -> init:int -> f:(int -> 'a -> int) -> int) -> 't -> f:(int -> 'a -> unit) -> unit

Generic definitions of indexed container operations in terms of foldi.

val counti : foldi:('t -> init:int -> f:(int -> int -> 'a -> int) -> int) -> 't -> f:(int -> 'a -> bool) -> int

Generic definitions of indexed container operations in terms of iteri.

val existsi : iteri:('t -> f:(int -> 'a -> unit) -> unit) -> 't -> f:(int -> 'a -> bool) -> bool
val for_alli : iteri:('t -> f:(int -> 'a -> unit) -> unit) -> 't -> f:(int -> 'a -> bool) -> bool
val findi : iteri:('t -> f:(int -> 'a -> unit) -> unit) -> 't -> f:(int -> 'a -> bool) -> (int * 'a) option
val find_mapi : iteri:('t -> f:(int -> 'a -> unit) -> unit) -> 't -> f:(int -> 'a -> 'b option) -> 'b option
module Make (T : sig ... end) : S1 with type 'a t := 'a T.t