Another hypothetical:

Suppose you have a browser (which understands "language" traits) or a word processor 
(which stores "style" and/or "font" information) that is storing some not-text-only 
string-like things via scalar strings+ or objectrefs.

You want to do something like "search for all occurrences of the word 'From:' in a 
heading style" or "Find all letters 'l' in french text".

How do you write, and how do you code, the rule(s) for that?

I think it could be a rule junction, as C< /all(<french>, 'l')/ > but that's not 
entirely satisfying since I don't imagine that rule junctions are going to be the most 
efficient constructs around. (But would a rulejunction be a valid way of searching?)

Alternatively, there would need to be some way of inquiring about distributed traits. 
That is, a trait that wasn't actually applied to every single member of a list, but 
which was "inferred" by some magic accessor. (IOW, the "string" object defines a 
special version of the trait accessor method (.AUTOTRAIT anyone?) that knows how to 
query to see if there is a <french>...</french> tagset surrounding this text, or 
whatever.

With that, you could define a rule called "<french>" and called "</french>" that 
clevery look like XML but invoke the rules. Something like:

  m <french>l</french>  Â

This has the twin virtues of (1) looking cool; and (2) being really self-explanatory. 
But, how would you code a rule pair like french and /french?

If that's not doable, is there some other way, especially some variable way, of 
checking for "traits" at the same time you're matching patterns? (I.e., $language 
instead of <french>)

=Austin


Reply via email to