Functions for manipulating sets as ordered lists.
Sets are collections of elements with no duplicate elements.
An ordset is a representation of a set, where an ordered
list is used to store the elements of the set. An ordered list
is more efficient than an unordered list. Elements are ordered
according to the Erlang term order.
This module provides the same interface as the
sets(3) module
but with a defined representation. One difference is
that while sets considers two elements as different if they
do not match (=:=), this module considers two elements as
different if and only if they do not compare equal (==).
Functions
add_element(Element, Ordset1) -> Ordset2
Returns a new ordered set formed from
with inserted.
del_element(Element, Ordset1) -> Ordset2
Element = term()Ordset1 = Ordset2 = ordset(T)
Returns , but with
removed.
filter(Pred, Ordset1) -> Ordset2
Pred = fun((Element :: T) -> boolean())Ordset1 = Ordset2 = ordset(T)
Filters elements in with boolean function
.
fold(Function, Acc0, Ordset) -> Acc1
Function =
fun((Element :: T, AccIn :: term()) -> AccOut :: term())Ordset = ordset(T)Acc0 = Acc1 = term()
Folds over every element in
and returns the final value of the
accumulator.
from_list(List) -> Ordset
List = [T]Ordset = ordset(T)
Returns an ordered set of the elements in .
intersection(OrdsetList) -> Ordset
Returns the intersection of the non-empty list of sets.
intersection(Ordset1, Ordset2) -> Ordset3
Ordset1 = Ordset2 = Ordset3 = ordset(term())
Returns the intersection of and
.
is_disjoint(Ordset1, Ordset2) -> boolean()
Ordset1 = Ordset2 = ordset(term())
Returns true if and
are disjoint (have no elements in common),
otherwise false.
is_element(Element, Ordset) -> boolean()
Element = term()Ordset = ordset(term())
Returns true if is an element of
, otherwise false.
is_empty(Ordset) -> boolean()
Ordset = ordset(term())
Returns true if is an empty set,
otherwise false.
is_set(Ordset) -> boolean()
Ordset = term()
Returns true if is an ordered set
of elements, otherwise false.
is_subset(Ordset1, Ordset2) -> boolean()
Ordset1 = Ordset2 = ordset(term())
Returns true when every element of
is also a member of , otherwise
false.
new() -> []
Returns a new empty ordered set.
subtract(Ordset1, Ordset2) -> Ordset3
Ordset1 = Ordset2 = Ordset3 = ordset(term())
Returns only the elements of that are not
also elements of .
union(OrdsetList) -> Ordset
Returns the merged (union) set of the list of sets.