new() -> set()

Returns a new empty set.

is_set(Set) -> boolean()

Types:

Set = term()

Returns *true* if *Set* is a set of elements, otherwise *false*.

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

Types:

Set = **set()**

Returns the number of elements in *Set*.

to_list(Set) -> List

Types:

Set = **set**(Element)

List = [Element]

Returns the elements of *Set* as a list. The order of the returned elements is undefined.

from_list(List) -> Set

Types:

List = [Element]

Set = **set**(Element)

Returns a set of the elements in *List*.

is_element(Element, Set) -> boolean()

Types:

Set = **set**(Element)

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

add_element(Element, Set1) -> Set2

Types:

Set1 = Set2 = **set**(Element)

Returns a new set formed from *Set1* with *Element* inserted.

del_element(Element, Set1) -> Set2

Types:

Set1 = Set2 = **set**(Element)

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

union(Set1, Set2) -> Set3

Types:

Set1 = Set2 = Set3 = **set**(Element)

Returns the merged (union) set of *Set1* and *Set2*.

union(SetList) -> Set

Types:

SetList = [**set**(Element)]

Set = **set**(Element)

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

intersection(Set1, Set2) -> Set3

Types:

Set1 = Set2 = Set3 = **set**(Element)

Returns the intersection of *Set1* and *Set2*.

intersection(SetList) -> Set

Types:

SetList = [**set**(Element), ...]

Set = **set**(Element)

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

is_disjoint(Set1, Set2) -> boolean()

Types:

Set1 = Set2 = **set**(Element)

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

subtract(Set1, Set2) -> Set3

Types:

Set1 = Set2 = Set3 = **set**(Element)

Returns only the elements of *Set1* which are not also elements of *Set2*.

is_subset(Set1, Set2) -> boolean()

Types:

Set1 = Set2 = **set**(Element)

Returns *true* when every element of *Set1*1 is also a member of *Set2*, otherwise *false*.

fold(Function, Acc0, Set) -> Acc1

Types:

Function = fun((Element, AccIn) -> AccOut)

Set = **set**(Element)

Acc0 = Acc1 = AccIn = AccOut = Acc

Fold *Function* over every element in *Set* returning the final value of the accumulator. The evaluation order is undefined.

filter(Pred, Set1) -> Set2

Types:

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

Set1 = Set2 = **set**(Element)

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