home *** CD-ROM | disk | FTP | other *** search
-
- [REVE.REC]
- [reverse a binary string]
-
- [a catalytic * appears in front of the string]
- [it turns zeroes into a's, ones into b's]
- [a's and b's have high priority to drift right across 0's and 1's]
- [when there are no more 0's or 1's to turn into a's and b's, the
- * drifts right, restoring a's and b's to their binary equivalents]
- [when there are no more a's and b's to restore, * vanishes, process stops]
-
- [In a Markov algorithm, only consecutive symbols can be transformed. Thus
- it is very common to find a catalyst, or escort symbol being created at
- the very lowest level of priority. It seeks out certain configurations
- to which it is attuned, often casting them into an alternative alphabet.
- The activated symbols then have a high priority mobility, which allows
- them to pair themselves up with selected counterparts. Once the proper
- pairs or other groupings are in contact, another set of rules can carry
- out the real computation which is the objective of the rule set.]
-
- [When a Markov algorithm gets to be quite complicated, several catalysts,
- or cursors, can be active. Alternative alphabets provide the equivalent
- of subroutines, since a group of rules will only respond to letters from
- its own alphabet. Likewise the ordering of the rules, by giving each of
- them its own relative priority, has an important bearing on the way in
- which the algorithm is executed.]
-
- [[]]
-
- {
- [cr,lf] (2573TL;)&
- [read phrase] (R13%='';T08%(=2080[sp,bs]TL)(@J|;L@J;);)J
- [sign-on line] ('This algorithm will reverse a binary string. Type a
- sequence of 0`s or 1`s, followed by a carriage return.
-
- 111000110010
-
- With each successive keystroke, an additional step in
- the execution of the algorithm will be shown.
- 'TL@&'Initial Axiom:'TL@&@JI;:)R
- [write workspace] (JZqt;)W
- [final statement] (@&'Production:'TL@&JZqt;)X
- (@R(@&@WRL
-
- [a passes 0] 'a0'FD'0a'I:
- [a passes 1] 'a1'FD'1a'I:
- [b passes 0] 'b0'FD'0b'I:
- [b passes 1] 'b1'FD'1b'I:
- [* turns 0 into a] '*0'FD'*a'I:
- [* turns 1 into b] '*1'FD'*b'I:
- [* crosses a, leaves 0] '*a'FD'0*'I:
- [* crosses b, leaves 1] '*b'FD'1*'I:
- [* finally disappears] '*'FD''I;
- [create * as catalyzer] ''FD'*'I:;;)@X;;)}
-
- [end]
-