|
Subject: Re: [xsl] Duplicates in a sequence ? From: "Leo Studer leo.studer@xxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Wed, 25 Mar 2015 17:03:06 -0000 |
Nice xPath 3.1 approach, thanks.
> On 25.03.2015, at 12:31, Michael Kay mike@xxxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> I don't know of a better solution.
>
> If the sequences are very long and you want something that will stop as soon
as it hits the first duplicate, you could use recursion and maps:
>
> function has-dupes ($in as xs:integer*, $found as map(*)) {
> map:contains($found, head($in)) or has-dupes(tail($in), map:put($found,
head($in), 0)
> }
>
> then
>
> has-dupes($sequence, map{})
>
> Michael Kay
> Saxonica
> mike@xxxxxxxxxxxx
> +44 (0) 118 946 5893
>
>
>
>
> On 25 Mar 2015, at 10:58, Leo Studer leo.studer@xxxxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> Hello
>>
>> I have a sequence and want to know whether there are duplicate values in
it.
>>
>> I came out with the following and think there must be an easy solution. Any
suggestion?
>>
>> let $sequence :=(1,12,14,17,22,12) return
(count(distinct-values($sequence)) ne count($sequence))
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Duplicates in a sequence , Michael Kay mike@xxx | Thread | Re: [xsl] Duplicates in a sequence , Dimitre Novatchev dn |
| Re: [xsl] Duplicates in a sequence , Dimitre Novatchev dn | Date | Re: [xsl] Duplicates in a sequence , Leo Studer leo.stude |
| Month |