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:trueif e is in set, otherwisefalseotherwiseUsage: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
        
 trueif set1 and set2 each contain identical elements,falseotherwiseUsage: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
        
 trueif set2 contains all elements in set1 but not only those elements,falseotherwiseUsage: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
        
 trueif all elements in set1 are also in set2,falseotherwiseUsage: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
        
 trueif everything in set1 is also in set2See also:Usage:issubset = set1 <= set2 
- std.set.__lt (set1, set2)
- 
    Proper subset operator.
    Parameters:Returns:- 
           boolean
        
 trueif 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