xsl-list
[Top] [All Lists]

Re: [xsl] XSLT repetition constructs

2019-03-08 02:40:18
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(_dot_)mukul(_at_)gmail(_dot_)com 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

Hi Mike,

On Thu, Mar 7, 2019 at 8:49 PM Michael Kay mike(_at_)saxonica(_dot_)com 
<mailto:mike(_at_)saxonica(_dot_)com> 
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com 
<mailto:xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com>> 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 <>)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--
<Prev in Thread] Current Thread [Next in Thread>