Let OP be an opid and a list of op-parameter values. Then we say a term T is an OP-representation of a certain term sequence as follows:
1. | If T is an instance of an operator with OP as its opid and op-parm-values, and has no immediate subterms, then T represents the empty sequence. |
2. | If T is an instance of an operator with OP as its opid and op-parm-values, and has two-immediate subterms and no bindings, then T represents the catenation of the sequences represented by its subterms. |
3. | Otherwise, T represents the unit sequence with itself as the only member. |
The system avoids ambiguity by expecting specific operator ids and op-parms to be used in specific places where term sequences are needed as data. The structure of the particular binary trees representing the sequences will be ignored for those purposes.
It often happens that a person wants to reorganize a term representing a sequence so that it represents the same sequence, but representing a certain segment with a single subterm.
To select a subsequence,
1. | click |
2. | then with this mark left highlighted, use the same command to click on the other endpoint; if you move the point off the #MARK <term> when you do the second |
2'. | If you use |
You can also reorganize a sequence so that nesting is only through one place. The command (m-w)
(c-i)}'