Library
Module
Module type
Parameter
Class
Class type
Range library for making easy folding on a sequence of integers Copyright (C) 2018,2019 Aldrik KLEBER
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
type elt = Base.int
t type correspond to a integer range value
include Base.Equal.S with type t := t
val equal : t Base.Equal.equal
from start_value stop_value : will create a t value representing the range described by the two values given in parameter.
filter f range : will create a new Range.t value using predicate function f. This modifies the behaviour of iter or fold function in order to apply only to values that satisfies the predicate.
is filtered predicate
test if a Range.t value contain a filter or map function transforming data.
fold the equivalent of List.fold_left applied to integer range_record explore all the values contained in the range value applying f to the accumulator and the current element read by fold. If a filter was associated to the range value, only element validated by the predicate f will be passed to the function.
iter apply a function with side effect on all values of the range. This function support filtering.
split a range value into a list of smaller range, useful for batching in parallel processing.
contain function to test if an integer value is contained in a Range.t values
val cross : t -> t -> t Base.Option.t
new Range.t value representing the common value between two Range.t values.
val join : t -> t -> t Base.Option.t
Join to generate a new Range.t value contained both a and b