O(n)creation time (using
O(1)comparison (in practice). The result of
compareis independent of evaluation order.
It is currently implemented as follows.
- Each symbol contains a unique integer, which allows
- Each symbol contains an infinite chain of hashes, these are used for comparison. In practice, it is very rare that more than the first of those hashes is ever evaluated. The first hash is cached, so that most comparisons will not need any indirections.
Stringrepresentation of the symbol. Use
showto return it. At any time, there will be only one symbol of a given name in memory.