Library with an implementation of tables as red-black trees:
A table is a finite mapping from keys to values. All the operations on tables are generic, i.e., one has to provide an explicit order predicate on elements. Each inner node in the red-black tree contains a key-value association.
Author: Johannes Koj, Michael Hanus, Bernd Brassel
Version: December 2018
empty
:: Eq a => (a -> a -> Bool) -> RedBlackTree (a,b)
Returns an empty table, i.e., an empty red-black tree. |
isEmpty
:: RedBlackTree (a,b) -> Bool
tests whether a given table is empty |
lookup
:: a -> RedBlackTree (a,b) -> Maybe b
Looks up an entry in a table. |
update
:: a -> b -> RedBlackTree (a,b) -> RedBlackTree (a,b)
Inserts or updates an element in a table. |
toList
:: RedBlackTree (a,b) -> [(a,b)]
Transforms the nodes of red-black tree into a list. |
delete
:: a -> RedBlackTree (a,b) -> RedBlackTree (a,b)
|
Type synonym: TableRBT a b = RedBlackTree (a,b)
Returns an empty table, i.e., an empty red-black tree. |
tests whether a given table is empty
|
Looks up an entry in a table.
|
Inserts or updates an element in a table. |
Transforms the nodes of red-black tree into a list.
|
|