Am 13.03.2019 um 10:11 schrieb Mukul Gandhi gandhi.mukul@xxxxxxxxx:
Hi all,
B B Please look at following link, for description of XPath 3.1
functionB fn:fold-right(),
https://www.w3.org/TR/xpath-functions-31/#func-fold-right
Within this function's description, its mentioned
The effect of the function is equivalent to the following implementation
or its equivalent in XSLT:
<xsl:function name="fn:fold-right" as="item()*">
B <xsl:param name="seq" as="item()*"/>
B <xsl:param name="zero" as="item()*"/>
B <xsl:param name="f" as="function(item(), item()*) as item()*"/>
B <xsl:choose>
B B <xsl:when test="fn:empty($seq)">
B B B <xsl:sequence select="$zero"/>
B B </xsl:when>
B B <xsl:otherwise>
B B B <xsl:sequence select="$f(fn:head($seq),
fn:fold-right(fn:tail($seq), $zero, $f))"/>
B B </xsl:otherwise>
B </xsl:choose>
</xsl:function>
I've a feeling, that above XSLT logic of this function may be wrong
(particularly the line <xsl:sequence select="$f(fn:head($seq),
fn:fold-right(fn:tail($seq), $zero, $f))"/>. But I'll appreciate if
anyone may point me wrong).
Is there any input for which the function fails to give the right result?
For instance for any of the test cases in
https://github.com/w3c/qt3tests/blob/master/fn/fold-right.xml?
|