Re: [xsl] XQuery/XPath 3.1: Node List to Node Set ("distinct nodes")

Subject: Re: [xsl] XQuery/XPath 3.1: Node List to Node Set ("distinct nodes")
From: "Eliot Kimber eliot.kimber@xxxxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 29 Dec 2021 17:57:28 -0000
Dimitre,

ThanksI see now that I had the parameters reversedI didnt read the spec
carefully enough and assumed that the order of the parameters to fold-left
matched the order of the parameters to the function.

Cheers,

E.



_____________________________________________
Eliot Kimber
Sr Staff Content Engineer
O: 512 554 9368
M: 512 554 9368
servicenow.com<https://www.servicenow.com>
LinkedIn<https://www.linkedin.com/company/servicenow> |
Twitter<https://twitter.com/servicenow> |
YouTube<https://www.youtube.com/user/servicenowinc> |
Facebook<https://www.facebook.com/servicenow>

From: Dimitre Novatchev dnovatchev@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Wednesday, December 29, 2021 at 10:51 AM
To: xsl-list <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [xsl] XQuery/XPath 3.1: Node List to Node Set ("distinct nodes")
[External Email]

On Wed, Dec 29, 2021 at 7:25 AM Eliot Kimber
eliot.kimber@xxxxxxxxxxxxxx<mailto:eliot.kimber@xxxxxxxxxxxxxx>
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx<mailto:xsl-list-service@xxxxxxxxxxxx
rytech.com>> wrote:
> So given this expression:
>
> fold-left($nodes, (), function($a, $n) { $a, $n except $a })
>
> I understand this to be iterating over $nodes from left to right, applying
the function function($a, $n) to each node, where $a is the next node and $n
is the accumulated value (being the result returned by the
>   function on each invocation).
>
> The $a, $n except $a in the function body constructs a new sequence of
($a, $n), excluding $a if it is already in $n. This sequence is then passed as
the second parameter of the next invocation of the
> function. This has the effect of preserving the order of input node list.

Actually, $a is the accumulated result, and $n is the head of the remaining
sequence -- as per spec.

And if it were as quated above, we would get the in the results the last
occurrence of each item, not the first.

Cheers,
Dimitre

Current Thread