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 type correspond to a integer range value
include Base.Equal.S with type t := t
val equal : t Base.Equal.equal
include Base.Stringable.S with type t := t
val of_string : string -> t
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 funtions 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 rang 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
apply f to elements contained in a Range.t value
This feature used a delayed application of f. Like for filters, f is stacked on previous filter or map functions.
val to_string : t -> Base.string
export limits of a range to a string.
The presence of functions that can modifiy the content is signaled by "M:" prefix