dict
The file builtins\dict.e (an autoinclude) provides support for dictionaries aka associative arrays.
Any key can be mapped to any value, and both can be anything (integer|atom|string|[nested]sequence, including 0|NULL).
By default, all keys and values are entered into one central dictionary, which works as if new_dict() had returned 1.
You can create multiple dictionaries by calling integer tid=new_dict(), and pass that as an additional (final) parameter to the other routines (taking care not to miss any).
Internally, dictionaries are based on a self-balancing binary search tree; see also demo\rosetta\AVL_tree.exw for a slightly longer but perhaps more readable version of the code in builtins\dict.e.
These routines are fully supported by pwa/p2js, with the exception of save_map() and load_map().
Any key can be mapped to any value, and both can be anything (integer|atom|string|[nested]sequence, including 0|NULL).
By default, all keys and values are entered into one central dictionary, which works as if new_dict() had returned 1.
You can create multiple dictionaries by calling integer tid=new_dict(), and pass that as an additional (final) parameter to the other routines (taking care not to miss any).
Internally, dictionaries are based on a self-balancing binary search tree; see also demo\rosetta\AVL_tree.exw for a slightly longer but perhaps more readable version of the code in builtins\dict.e.
These routines are fully supported by pwa/p2js, with the exception of save_map() and load_map().
| new_dict | - | create a separate and independant sub-dictionary. |
| destroy_dict | - | completely remove a dictionary, including all key and data pairings it contains. |
| setd | - | add a {key,data} pairing to the dictionary. |
| setd_default | - | change the default value (initially NULL) for missing keys. |
| getd | - | retrieve the data corresponding to the specified key. |
| getd_index | - | retrieve the node index corresponding to the specified key. |
| getd_by_index | - | retrieve the data corresponding to the specified node index (from getd_index). |
| deld | - | delete a {key,data} pairing from the dictionary. |
| traverse_dict | - | perform an in-order traversal, invoking the specified routine for each {key,data} pairing. |
| map | - | partial compatibility for Euphoria’s std\map.e |