Library
Module
Module type
Parameter
Class
Class type
Range module provide a type for handling the description of an integer sequence described by a start value and a stop value. This module provide functions to fold, filter and map this range.
The main goal is to : * provide a split capacity in order to make life easy for distributed processing. * avoid the use of list or lazy list when the only need is to sequence a range of integer.
type elt = Base.Int.t
module Number : sig ... end
'a number type is an integer with constraints *
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.
val length : t -> Base.Int.t
length range_value : return the number of elements contained in rang_value
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.
fold_right explore all the values contained in the range value, in reverse order, starting by the last value to the first one, 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