diff options
Diffstat (limited to 'doc/expert/pre_rump')
-rw-r--r-- | doc/expert/pre_rump | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/doc/expert/pre_rump b/doc/expert/pre_rump new file mode 100644 index 0000000..0270202 --- /dev/null +++ b/doc/expert/pre_rump @@ -0,0 +1,41 @@ +@Section + @Title { {"@Common"}, {"@Rump"}, and "@Meld" } + @Tag { rump } +@Begin +@PP +common.sym @Index { @@Common symbol } +rump.sym @Index { @@Rump symbol } +meld.sym @Index { @@Meld symbol } +The @@Common and @@Rump symbols compare two paragraph objects: +@ID @Code "{ Aardvark, 29 } @Common { Aardvark, 359 }" +If either parameter is not a paragraph object, it is converted into +a single-object paragraph first. The result of @@Common is the +common prefix of the two paragraphs; that is, those initial objects +which are equal in the two paragraphs. In the example above, the +result is {@Code "Aardvark,"}. The result of @@Rump is that part of +the second object which is not included in @@Common; the result of +@ID @Code "{ Aardvark, 29 } @Rump { Aardvark, 359 }" +is {@Code "359"}. +@PP +If the two objects have nothing in common, the result of @@Common will +be an empty object and the result of @@Rump will be the second +object. If the two objects are identical, the result of @@Common will +be the first object, and the result of @@Rump will be an empty object. +@PP +The only known use for @@Rump and @@Common is to implement merged index +entries (Section {@NumberOf sorted}). +@PP +The @@Meld symbol returns the minimum meld of two paragraphs, that +is the shortest paragraph that contains the two original paragraphs +as subsequences. For example, +@ID @Code "{ Aardvark , 1 , 2 } @Meld { Aardvark , 2 , 3 }" +produces +@ID { Aardvark , 1 , 2 } @Meld { Aardvark , 2 , 3 } +The result is related to the well-known +longest common substring, in that the meld contains everything not in +the lcs plus one copy of everything in the lcs. This function is +well-suited to melding complex index entries. Note that there must be +a non-zero amount of space before each comma, otherwise each will become +part of the preceding word, and, since @@Meld compares the two paragraphs +word by word, the result will be different and less satisfactory. +@End @Section |