xsl-list
[Top] [All Lists]

RE: [xsl] comparing sequences that contain more than one of the same item

2008-02-22 07:59:13

Sort the characters in the long string into code point order

farmer => aefmrr

Turn this into a regular expression in which each character is optional

a?e?f?m?r?r?

Sort the characters in the short string into code point order, and test
whether the result matches this regular expression.

You could start with a quick filter:

translate($short, $long, '') = '' 

will be false if $short contains a character that is not present in $long.

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Andrew Welch [mailto:andrew(_dot_)j(_dot_)welch(_at_)gmail(_dot_)com] 
Sent: 22 February 2008 13:57
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] comparing sequences that contain more than one 
of the same item

A bit of a Friday challenge...

Is it possible to compare to sequences such that items in the 
sequence are consumed after the comparison?

For example, I want to compare two words to see if one is a 
subset of the other.

"farmer" and "frame"

If you do:

string-to-codepoints('farmer')[not(. = string-to-codepoints('frame'))]

the result is empty because the two r's in farmer are both 
being compared to the single r in frame.

Currently I've a got a recursive function that removes each 
letter after a match, but I'm wondering if there's a 
one-liner or some other set based approach?


thanks
--
Andrew Welch
http://andrewjwelch.com
Kernow: http://kernowforsaxon.sf.net/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--