API / Belt / Set / String

String

This module is Belt.Set specialized with value type to be a primitive type. It is more efficient in general, the API is the same with Belt_Set except its value type is fixed, and identity is not needed(using the built-in one)

See Belt.Set

value

RESCRIPT
type value = string

The type of the set elements.

t

RESCRIPT
type t

The type of sets.

empty

RESCRIPT
let empty: t

fromArray

RESCRIPT
let fromArray: array<value> => t

fromSortedArrayUnsafe

RESCRIPT
let fromSortedArrayUnsafe: array<value> => t

isEmpty

RESCRIPT
let isEmpty: t => bool

has

RESCRIPT
let has: (t, value) => bool

add

RESCRIPT
let add: (t, value) => t

add(s, x) If x was already in s, s is returned unchanged.

mergeMany

RESCRIPT
let mergeMany: (t, array<value>) => t

remove

RESCRIPT
let remove: (t, value) => t

remove(m, x) If x was not in m, m is returned reference unchanged.

removeMany

RESCRIPT
let removeMany: (t, array<value>) => t

union

RESCRIPT
let union: (t, t) => t

intersect

RESCRIPT
let intersect: (t, t) => t

diff

RESCRIPT
let diff: (t, t) => t

subset

RESCRIPT
let subset: (t, t) => bool

subset(s1, s2) tests whether the set s1 is a subset of the set s2.

cmp

RESCRIPT
let cmp: (t, t) => int

Total ordering between sets. Can be used as the ordering function for doing sets of sets.

eq

RESCRIPT
let eq: (t, t) => bool

eq(s1, s2) tests whether the sets s1 and s2 are equal, that is, contain equal elements.

forEachU

RESCRIPT
let forEachU: (t, (. value) => unit) => unit

forEach

RESCRIPT
let forEach: (t, value => unit) => unit

forEach(s, f) applies f in turn to all elements of s. In increasing order

reduceU

RESCRIPT
let reduceU: (t, 'a, (. 'a, value) => 'a) => 'a

reduce

RESCRIPT
let reduce: (t, 'a, ('a, value) => 'a) => 'a

Iterate in increasing order.

everyU

RESCRIPT
let everyU: (t, (. value) => bool) => bool

every

RESCRIPT
let every: (t, value => bool) => bool

every(p, s) checks if all elements of the set satisfy the predicate p. Order unspecified.

someU

RESCRIPT
let someU: (t, (. value) => bool) => bool

some

RESCRIPT
let some: (t, value => bool) => bool

some(p, s) checks if at least one element of the set satisfies the predicate p. Oder unspecified.

keepU

RESCRIPT
let keepU: (t, (. value) => bool) => t

keep

RESCRIPT
let keep: (t, value => bool) => t

keep(p, s) returns the set of all elements in s that satisfy predicate p.

partitionU

RESCRIPT
let partitionU: (t, (. value) => bool) => (t, t)

partition

RESCRIPT
let partition: (t, value => bool) => (t, t)

partition(p, s) returns a pair of sets (s1, s2), where s1 is the set of all the elements of s that satisfy the predicate p, and s2 is the set of all the elements of s that do not satisfy p.

size

RESCRIPT
let size: t => int

toList

RESCRIPT
let toList: t => list<value>

In increasing order

toArray

RESCRIPT
let toArray: t => array<value>

minimum

RESCRIPT
let minimum: t => option<value>

minUndefined

RESCRIPT
let minUndefined: t => Js.undefined<value>

maximum

RESCRIPT
let maximum: t => option<value>

maxUndefined

RESCRIPT
let maxUndefined: t => Js.undefined<value>

get

RESCRIPT
let get: (t, value) => option<value>

getUndefined

RESCRIPT
let getUndefined: (t, value) => Js.undefined<value>

getExn

RESCRIPT
let getExn: (t, value) => value

split

RESCRIPT
let split: (t, value) => ((t, t), bool)

split(x, s) returns a triple (l, present, r), where l is the set of elements of s that are strictly less than x; r is the set of elements of s that are strictly greater than x; present is false if s contains no element equal to x, or true if s contains an element equal to x.

checkInvariantInternal

RESCRIPT
let checkInvariantInternal: t => unit

raise when invariant is not held