package core_kernel

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

An implementation of compressed integer sets using lists of integer ranges. Operations such as adding and membership are O(n) where n is the number of contigous ranges in the set. For data that is mostly serial, n should remain very small.

Note that when n gets very large, in addition to poor performance, this behavior may throw exceptions since some of the code is not tail-recursive.

type t
val empty : t
val to_string : t -> Base.String.t
val add_range : t -> Base.Int.t -> Base.Int.t -> t

add_range t i j add all the numbers between i and j (inclusive) to the set. Note that it doesn't matter which order i and j are specified in, the effect is the same.

val add : t -> Base.Int.t -> t

add t i add i to the set

val mem : t -> Base.Int.t -> Base.Bool.t

mem t i test whether i is a member of the set

val ranges : t -> (Base.Int.t * Base.Int.t) Base.List.t

ranges t return a list of all ranges that make up the set

max t the biggest number in the set (if it exists)

min t the smallest number in the set (if it exists)

OCaml

Innovation. Community. Security.