aboutsummaryrefslogtreecommitdiff
path: root/api/sets.md
diff options
context:
space:
mode:
Diffstat (limited to 'api/sets.md')
-rw-r--r--api/sets.md243
1 files changed, 243 insertions, 0 deletions
diff --git a/api/sets.md b/api/sets.md
new file mode 100644
index 00000000..74016079
--- /dev/null
+++ b/api/sets.md
@@ -0,0 +1,243 @@
+% API
+
+# Builtins
+
+# Set
+## Set.add
+
+```tomo
+Set.add : func(set: |T|, item: T -> Void)
+```
+
+Adds an item to the set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The mutable reference to the set. |
+item | `T` | The item to add to the set. |
+
+**Return:** Nothing.
+
+
+**Example:**
+```tomo
+>> nums.add(42)
+
+```
+## Set.add_all
+
+```tomo
+Set.add_all : func(set: @|T|, items: [T] -> Void)
+```
+
+Adds multiple items to the set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `@|T|` | The mutable reference to the set. |
+items | `[T]` | The list of items to add to the set. |
+
+**Return:** Nothing.
+
+
+**Example:**
+```tomo
+>> nums.add_all([1, 2, 3])
+
+```
+## Set.clear
+
+```tomo
+Set.clear : func(set: @|T| -> Void)
+```
+
+Removes all items from the set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `@|T|` | The mutable reference to the set. |
+
+**Return:** Nothing.
+
+
+**Example:**
+```tomo
+>> nums.clear()
+
+```
+## Set.has
+
+```tomo
+Set.has : func(set: |T|, item: T -> Bool)
+```
+
+Checks if the set contains a specified item.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The set to check. |
+item | `T` | The item to check for presence. |
+
+**Return:** `yes` if the item is present, `no` otherwise.
+
+
+**Example:**
+```tomo
+>> |10, 20|.has(20)
+= yes
+
+```
+## Set.is_subset_of
+
+```tomo
+Set.is_subset_of : func(set: |T|, other: |T|, strict: Bool = no -> Bool)
+```
+
+Checks if the set is a subset of another set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The set to check. |
+other | `|T|` | The set to compare against. |
+strict | `Bool` | If `yes`, checks if the set is a strict subset (does not equal the other set). | **Default:** `no`
+
+**Return:** `yes` if the set is a subset of the other set (strictly or not), `no` otherwise.
+
+
+**Example:**
+```tomo
+>> |1, 2|.is_subset_of(|1, 2, 3|)
+= yes
+
+```
+## Set.is_superset_of
+
+```tomo
+Set.is_superset_of : func(set: |T|, other: |T|, strict: Bool = no -> Bool)
+```
+
+Checks if the set is a superset of another set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The set to check. |
+other | `|T|` | The set to compare against. |
+strict | `Bool` | If `yes`, checks if the set is a strict superset (does not equal the other set). | **Default:** `no`
+
+**Return:** `yes` if the set is a superset of the other set (strictly or not), `no` otherwise.
+
+
+**Example:**
+```tomo
+>> |1, 2, 3|.is_superset_of(|1, 2|)
+= yes
+
+```
+## Set.overlap
+
+```tomo
+Set.overlap : func(set: |T|, other: |T| -> |T|)
+```
+
+Creates a new set with items that are in both the original set and another set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The original set. |
+other | `|T|` | The set to intersect with. |
+
+**Return:** A new set containing only items present in both sets.
+
+
+**Example:**
+```tomo
+>> |1, 2|.overlap(|2, 3|)
+= |2|
+
+```
+## Set.remove
+
+```tomo
+Set.remove : func(set: @|T|, item: T -> Void)
+```
+
+Removes an item from the set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `@|T|` | The mutable reference to the set. |
+item | `T` | The item to remove from the set. |
+
+**Return:** Nothing.
+
+
+**Example:**
+```tomo
+>> nums.remove(42)
+
+```
+## Set.remove_all
+
+```tomo
+Set.remove_all : func(set: @|T|, items: [T] -> Void)
+```
+
+Removes multiple items from the set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `@|T|` | The mutable reference to the set. |
+items | `[T]` | The list of items to remove from the set. |
+
+**Return:** Nothing.
+
+
+**Example:**
+```tomo
+>> nums.remove_all([1, 2, 3])
+
+```
+## Set.with
+
+```tomo
+Set.with : func(set: |T|, other: |T| -> |T|)
+```
+
+Creates a new set that is the union of the original set and another set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The original set. |
+other | `|T|` | The set to union with. |
+
+**Return:** A new set containing all items from both sets.
+
+
+**Example:**
+```tomo
+>> |1, 2|.with(|2, 3|)
+= |1, 2, 3|
+
+```
+## Set.without
+
+```tomo
+Set.without : func(set: |T|, other: |T| -> |T|)
+```
+
+Creates a new set with items from the original set but without items from another set.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+set | `|T|` | The original set. |
+other | `|T|` | The set of items to remove from the original set. |
+
+**Return:** A new set containing items from the original set excluding those in the other set.
+
+
+**Example:**
+```tomo
+>> |1, 2|.without(|2, 3|)
+= |1|
+
+```