Re: [xsl] XSLT repetition constructs

Subject: Re: [xsl] XSLT repetition constructs
From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Fri, 8 Mar 2019 08:40:13 -0000
Because if $a is an empty sequence (which is the situation on the first call),
then $a[last()] is an empty sequence, and ($x + ()) returns an empty sequence,
not $x.

Michael Kay
Saxonica

> On 8 Mar 2019, at 05:35, Mukul Gandhi gandhi.mukul@xxxxxxxxx
<xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Hi Mike,
>
> On Thu, Mar 7, 2019 at 8:49 PM Michael Kay mike@xxxxxxxxxxxx
<mailto:mike@xxxxxxxxxxxx> <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx
<mailto:xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>> wrote:
> Your solution could be rewritten
>
> fold-left($x, (), function($a, $b) {$a, ($a[last()], 0)[1] + $b})
>
> I can confirm that, above expression evaluates correctly.
>
> But why does the following doesn't give the correct answer ?
>
> <xsl:variable name="inpValues" select="(1,2,3,4)" as="xs:integer*"/>
> fold-left($inpValues, (), function($a, $b) {$a, $a[last()] + $b})
>
> i.e why can't $a[last()] work instead your's ($a[last()], 0)[1]  ?
>
>
>
>
> --
> Regards,
> Mukul Gandhi
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
email <>)

Current Thread