StringTools[LexOrder] - perform lexicographical order comparison of strings
StringTools[ShortLexOrder] - perform short lexicographical order comparison of strings
StringTools[RevLexOrder] - perform reverse lexicographical order comparison of strings
StringTools[ShortRevLexOrder] - perform short reverse lexicographical order comparison of strings
StringTools[LeftRecursivePathOrder] - perform left recursive path order comparison of strings
StringTools[RightRecursivePathOrder] - perform right recursive path order comparison of strings
|
Calling Sequence
|
|
LexOrder( s1, s2 )
ShortLexOrder( s1, s2 )
RevLexOrder( s1, s2 )
ShortRevLexOrder( s1, s2 )
LeftRecursivePathOrder( s1, s2 )
RightRecursivePathOrder( s1, s2 )
|
|
Description
|
|
•
|
These six procedures implement various order relations on strings, extended from the numeric order on character code points.
|
•
|
Each procedure takes two strings s1 and s2 as arguments, and returns one of the values , according to the following table.
|
String Order
|
Return Value
|
|
|
s1 precedes s2
|
-1
|
s1 is identical to s2
|
0
|
s1 follows s2
|
1
|
|
|
•
|
The LexOrder(s1, s2) command implements simple lexicographic (dictionary) ordering of strings.
|
•
|
The RevLexOrder(s1, s2) command implements the reverse lexicographic order, which is equivalent to the lexicographic order on the reversed strings.
|
•
|
The left and right recursive path orders are also translation invariant, and are computed by the LeftRecursivePathOrder(s1, s2) and RightRecursivePathOrder(s1, s2) commands, respectively.
|
•
|
The left and right recursive path orders, manifest in the LeftRecursivePathOrder(s1, s2) and RightRecursivePathOrder(s1, s2) commands and are defined for two strings and , as follows. Characters (strings with length equal to 1) compare according to the numeric order of the corresponding code points.
|
|
|
Examples
|
|
>
|
|
>
|
|
| (1) |
>
|
|
| (2) |
>
|
|
| (3) |
>
|
|
| (4) |
>
|
|
| (5) |
>
|
|
| (6) |
>
|
|
| (7) |
>
|
|
| (8) |
>
|
|
| (9) |
|
|