aboutsummaryrefslogtreecommitdiffhomepage
path: root/std/Set.bruijn
blob: 0b9ea6d6182d277f79d3b7a01484d96da1954bce (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# MIT License, Copyright (c) 2023 Marvin Borner
# Generic set implementation using AVL trees
# some functions require a compare-case argument!

:import std/Tree/Balanced T
:import std/List .

# empty set
empty T.empty ⧗ Set

# adds a number of a set
add T.insert ⧗ Compare → Number → Set → Set

# returns true if a number is in a set
has? T.has? ⧗ Compare → Number → Set → Boolean

# count of elements in set
size T.size ⧗ Set → Number

# converts a set to a list
set→list T.tree→list ⧗ Set → (List Number)

# converts a list to a set
list→set T.list→tree ⧗ Compare → (List Number) → Set