Class std.set
Set container prototype.
Note that Functions listed below are only available from the Set prototype returned by requiring this module, because Container objects cannot have object methods.
Prototype Chain
table `-> Object `-> Container `-> Set
Objects
std.set.Set | Set prototype object. |
Functions
std.set.delete (set, e) | Delete an element from a set. |
std.set.difference (set1, set2) | Find the difference of two sets. |
std.set.difference (set, e) | Say whether an element is in a set. |
std.set.elems (set) | Iterator for sets. |
std.set.equal (set1, set2) | Find whether two sets are equal. |
std.set.insert (set, e) | Insert an element into a set. |
std.set.intersection (set1, set2) | Find the intersection of two sets. |
std.set.proper_subset (set1, set2) | Find whether one set is a proper subset of another. |
std.set.subset (set1, set2) | Find whether one set is a subset of another. |
std.set.symmetric_difference (set1, set2) | Find the symmetric difference of two sets. |
std.set.union (set1, set2) | Find the union of two sets. |
Metamethods
std.set.__add (set1, set2) | Union operator. |
std.set.__div (set1, set2) | Symmetric difference operator. |
std.set.__le (set1, set2) | Subset operator. |
std.set.__lt (set1, set2) | Proper subset operator. |
std.set.__mul (set1, set2) | Intersection operator. |
std.set.__sub (set1, set2) | Difference operator. |
Objects
- std.set.Set
-
Set prototype object.
Set also inherits all the fields and methods from std.container.Container.
Fields:
- _type string object name (default "Set")
See also:
Usage:
local std = require "std" std.prototype (std.set) --> "Set" os.exit (0)
Functions
Methods- std.set.delete (set, e)
-
Delete an element from a set.
Parameters:
- set Set a set
- e element
Returns:
-
Set
the modified set
Usage:
set.delete (available, found)
- std.set.difference (set1, set2)
-
Find the difference of two sets.
Parameters:
Returns:
-
Set
a copy of set1 with elements of set2 removed
Usage:
all = set.difference (all, {32, 49, 56})
- std.set.difference (set, e)
-
Say whether an element is in a set.
Parameters:
- set Set a set
- e element
Returns:
true
if e is in set, otherwisefalse
otherwiseUsage:
if not set.member (keyset, pressed) then return nil end
- std.set.elems (set)
-
Iterator for sets.
Parameters:
- set Set a set
Returns:
-
*set*
iterator
Usage:
for code in set.elems (isprintable) do print (code) end
- std.set.equal (set1, set2)
-
Find whether two sets are equal.
Parameters:
Returns:
-
boolean
true
if set1 and set2 each contain identical elements,false
otherwiseUsage:
if set.equal (keys, {META, CTRL, "x"}) then process (keys) end
- std.set.insert (set, e)
-
Insert an element into a set.
Parameters:
- set Set a set
- e element
Returns:
-
Set
the modified set
Usage:
for byte = 32,126 do set.insert (isprintable, string.char (byte)) end
- std.set.intersection (set1, set2)
-
Find the intersection of two sets.
Parameters:
Returns:
-
Set
a new set with elements in both set1 and set2
Usage:
common = set.intersection (a, b)
- std.set.proper_subset (set1, set2)
-
Find whether one set is a proper subset of another.
Parameters:
Returns:
-
boolean
true
if set2 contains all elements in set1 but not only those elements,false
otherwiseUsage:
if set.proper_subset (a, b) then for e in set.elems (set.difference (b, a)) do set.delete (b, e) end end assert (set.equal (a, b))
- std.set.subset (set1, set2)
-
Find whether one set is a subset of another.
Parameters:
Returns:
-
boolean
true
if all elements in set1 are also in set2,false
otherwiseUsage:
if set.subset (a, b) then a = b end
- std.set.symmetric_difference (set1, set2)
-
Find the symmetric difference of two sets.
Parameters:
Returns:
-
Set
a new set with elements that are in set1 or set2
but not both
Usage:
unique = set.symmetric_difference (a, b)
- std.set.union (set1, set2)
-
Find the union of two sets.
Parameters:
Returns:
-
Set
a copy of set1 with elements in set2 merged in
Usage:
all = set.union (a, b)
Metamethods
- std.set.__add (set1, set2)
-
Union operator.
Parameters:
Returns:
-
Set
everything from set1 plus everything from set2
See also:
Usage:
union = set1 + set2
- std.set.__div (set1, set2)
-
Symmetric difference operator.
Parameters:
Returns:
-
Set
everything from set1 or set2 but not both
See also:
Usage:
symmetric_difference = set1 / set2
- std.set.__le (set1, set2)
-
Subset operator.
Parameters:
Returns:
-
boolean
true
if everything in set1 is also in set2See also:
Usage:
issubset = set1 <= set2
- std.set.__lt (set1, set2)
-
Proper subset operator.
Parameters:
Returns:
-
boolean
true
if set2 is not equal to set1, but does contain everything from set1See also:
Usage:
ispropersubset = set1 < set2
- std.set.__mul (set1, set2)
-
Intersection operator.
Parameters:
Returns:
-
Set
anything this is in both set1 and set2
See also:
Usage:
intersection = set1 * set2
- std.set.__sub (set1, set2)
-
Difference operator.
Parameters:
Returns:
-
Set
everything from set1 that is not also in set2
See also:
Usage:
difference = set1 - set2