- make-suffix-tree:procedure
where:
- LEQ? is a less-than-or-equal procedure for comparing elements of the member lists
- {{KEY->LIST} is a procedure that takes in a key value and returns a list
The returned selector procedure can take one of the following arguments:
- 'insert
- inserts a new element (list); a procedure of the form (LAMBDA (K BVAL) ...) where K is a value of the type recognized by KEY->LIST and BVAL is the end-of-list value
- 'lookup
- looks up an element (list); a procedure of the form (LAMBDA (K) ...) where K is a value of the type recognized by KEY->LIST; returns the EOL value or #F if the given element is not found
- 'lookup/partial
- partial lookup; returns the EOL value, #f or the subtree that corresponds to the given partial key
- 'remove
- removes an element
- 'merge
- merges the suffix tree with another; if there is a list that appears in both suffix trees, an exception is raised
- 'partition
- splits the tree into three suffix-trees on the basis of the given element a. The first suffix-tree consists of branches with keys less than a (plus any EOL value), the second contains the branch (if any) associated with a, and the third consists of branches for keys greater than a