new() -> []

Returns a new empty ordered set.

is_set(Ordset) -> boolean()

Types:

Ordset = term()

Returns *true* if *Ordset* is an ordered set of elements, otherwise *false*.

size(Ordset) -> integer() >= 0

Types:

Ordset = **ordset**(term())

Returns the number of elements in *Ordset*.

to_list(Ordset) -> List

Types:

Ordset = **ordset**(T)

List = [T]

Returns the elements of *Ordset* as a list.

from_list(List) -> Ordset

Types:

List = [T]

Ordset = **ordset**(T)

Returns an ordered set of the elements in *List*.

is_element(Element, Ordset) -> boolean()

Types:

Element = term()

Ordset = **ordset**(term())

Returns *true* if *Element* is an element of *Ordset*, otherwise *false*.

add_element(Element, Ordset1) -> Ordset2

Types:

Element = E

Ordset1 = **ordset**(T)

Ordset2 = **ordset**(T | E)

Returns a new ordered set formed from *Ordset1* with *Element* inserted.

del_element(Element, Ordset1) -> Ordset2

Types:

Element = term()

Ordset1 = Ordset2 = **ordset**(T)

Returns *Ordset1*, but with *Element* removed.

union(Ordset1, Ordset2) -> Ordset3

Types:

Ordset1 = **ordset**(T1)

Ordset2 = **ordset**(T2)

Ordset3 = **ordset**(T1 | T2)

Returns the merged (union) set of *Ordset1* and *Ordset2*.

union(OrdsetList) -> Ordset

Types:

OrdsetList = [**ordset**(T)]

Ordset = **ordset**(T)

Returns the merged (union) set of the list of sets.

intersection(Ordset1, Ordset2) -> Ordset3

Types:

Ordset1 = Ordset2 = Ordset3 = **ordset**(term())

Returns the intersection of *Ordset1* and *Ordset2*.

intersection(OrdsetList) -> Ordset

Types:

OrdsetList = [**ordset**(term()), ...]

Ordset = **ordset**(term())

Returns the intersection of the non-empty list of sets.

is_disjoint(Ordset1, Ordset2) -> boolean()

Types:

Ordset1 = Ordset2 = **ordset**(term())

Returns *true* if *Ordset1* and *Ordset2* are disjoint (have no elements in common), and *false* otherwise.

subtract(Ordset1, Ordset2) -> Ordset3

Types:

Ordset1 = Ordset2 = Ordset3 = **ordset**(term())

Returns only the elements of *Ordset1* which are not also elements of *Ordset2*.

is_subset(Ordset1, Ordset2) -> boolean()

Types:

Ordset1 = Ordset2 = **ordset**(term())

Returns *true* when every element of *Ordset1* is also a member of *Ordset2*, otherwise *false*.

fold(Function, Acc0, Ordset) -> Acc1

Types:

Function =

fun((Element :: T, AccIn :: term()) -> AccOut :: term())

Ordset = **ordset**(T)

Acc0 = Acc1 = term()

Fold *Function* over every element in *Ordset* returning the final value of the accumulator.

filter(Pred, Ordset1) -> Ordset2

Types:

Pred = fun((Element :: T) -> boolean())

Ordset1 = Ordset2 = **ordset**(T)

Filter elements in *Ordset1* with boolean function *Pred*.