ternarytreap library

This library defines 2 Multimaps and a Set implemented as self balancing compact ternary trees allowing fast, memory efficient prefix and near neighbour searching over a set of String keys

  • TTMultiMapSet - Keys map to Set of Values
  • TTMultiMapList - Keys map to Sequence of Values
  • TTSet - A Set of Strings

Balancing is achieved via Treap algorithm where each node is assigned a random priority and tree rotation used to maintain heap ordering.

Classes

TTIterable<V>
An iterable that returns TTIterator.
TTIterator<V>
An iterator that also reports prefixEditDistance.
TTMultiMap<V>
A Multimap with prefix and near neighbour searching capability across keys.
TTMultiMapList<V>
Return a TTMultiMap that stores values in a List
TTMultiMapListEquality<V>
An equality between TTMultiMapListEquality instances.
TTMultiMapSet<V>
Return a TTMultiMap that stores values in a Set
TTMultiMapSetEquality<V>
An equality between TTMultiMapSetEquality instances.
TTSet
A Set<String> with prefix and near neighbour searching capability across elements.
TTSetEquality
An equality between TTSetEquality instances.

Functions

collapseWhitespace(String? str) String
Transform str such that:
identity(String? str) String
Return str unchanged.
joinSingleLetters(String? str) String
Transform str such that adjacent single alphanumeric symbols separated by whitespace are joined together. For example:
lowercase(String? str) String
Transform str such that all characters are lowercase.
lowerCollapse(String? str) String
Transform str with both lowercase and collapseWhitespace.
nonLetterToSpace(String? str) String
Transform str such that each non letter character is replaced by a space character.
uppercase(String? str) String
Transform str such that all characters are uppercase.

Typedefs

KeyMapping = String Function(String? str)
Often it is desirable to define equivalences between Key strings, for example for case insensitivity.