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:

  • set1 Set a set
  • set2 Set another set

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, otherwise false otherwise

Usage:

    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:

  • set1 Set a set
  • set2 Set another set

Returns:

    boolean true if set1 and set2 each contain identical elements, false otherwise

Usage:

    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:

  • set1 Set a set
  • set2 Set another set

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:

  • set1 Set a set
  • set2 Set another set

Returns:

    boolean true if set2 contains all elements in set1 but not only those elements, false otherwise

Usage:

     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:

  • set1 Set a set
  • set2 Set another set

Returns:

    boolean true if all elements in set1 are also in set2, false otherwise

Usage:

    if set.subset (a, b) then a = b end
std.set.symmetric_difference (set1, set2)
Find the symmetric difference of two sets.

Parameters:

  • set1 Set a set
  • set2 Set another set

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:

  • set1 Set a set
  • set2 Set another set

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:

  • set1 Set a set
  • set2 Set another set

Returns:

    Set everything from set1 plus everything from set2

See also:

Usage:

    union = set1 + set2
std.set.__div (set1, set2)
Symmetric difference operator.

Parameters:

  • set1 Set a set
  • set2 Set another set

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:

  • set1 Set a set
  • set2 Set another set

Returns:

    boolean true if everything in set1 is also in set2

See also:

Usage:

    issubset = set1 <= set2
std.set.__lt (set1, set2)
Proper subset operator.

Parameters:

  • set1 Set set
  • set2 Set another set

Returns:

    boolean true if set2 is not equal to set1, but does contain everything from set1

See also:

Usage:

    ispropersubset = set1 < set2
std.set.__mul (set1, set2)
Intersection operator.

Parameters:

  • set1 Set a set
  • set2 Set another set

Returns:

    Set anything this is in both set1 and set2

See also:

Usage:

    intersection = set1 * set2
std.set.__sub (set1, set2)
Difference operator.

Parameters:

  • set1 Set a set
  • set2 Set another set

Returns:

    Set everything from set1 that is not also in set2

See also:

Usage:

    difference = set1 - set2
generated by LDoc 1.4.3 Last updated 2018-09-03 17:48:42