[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: W3C Specification of fn:filter() -- is this a bug

Subject: Re: W3C Specification of fn:filter() -- is this a bug in the document or in Saxon?
From: "Dimitre Novatchev dnovatchev@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Mon, 9 Sep 2019 02:18:41 -0000
Re:  W3C Specification of fn:filter() -- is this a bug
Forgot to provide the truly equivalent XPath - only implementation -- here
is one that is even non-recursive:

let $filter := function($f as function(item()) as xs:boolean, $list as
item()*) as item()*
{
  $list ! .[$f(.)]
}
  return
    $filter(function($n) {$n idiv 2 * 2 eq $n}, 1 to 10000)


On Sun, Sep 8, 2019 at 6:43 PM Dimitre Novatchev <dnovatchev@xxxxxxxxx>
wrote:

> >  You can never guarantee that two expressions are equivalent in your
> > sense, because of "errors and optimization". Any construct might raise
> > an error - in the case of this example, stack overflow if the recursion
> > gets too deep.
>
> What about tail-recursion?
>
> For years we have known recursive expressions whose tail-recursiveness is
> correctly recognized in BaseX and it provides correct evaluation regardless
> of the input size (recursion depth) but other processors fail miserably...
>
> How much value for the developers would have been provided by the
> specification if it mandated proper handling of tail-recursion!!!
>
> The value provided in a document is rather debatable when specifying
> "equivalent implementations" that blow up for reasonably long inputs
> (several thousand items isn't too high!) when other implementations could
> have been provided that demonstrate equivalence with much longer inputs
> (millions of items)
>
> Also, why in an XPath specification give "equivalent implementations" in
> two different languages neither of which is XPath?
>
> Cheers,
> Dimitre
>
> On Sun, Sep 8, 2019 at 5:54 PM Liam R. E. Quin liam@xxxxxxxxxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
>> On Mon, 2019-09-09 at 00:18 +0000, Dimitre Novatchev
>> dnovatchev@xxxxxxxxx wrote:
>> > The W3C F&O 3.1 spec (at
>> > https://www.w3.org/TR/xpath-functions-31/#func-filter ) says:
>> >
>> > Rules
>> >
>> > The effect of the function is equivalent to the following
>> [...]
>> >
>> > Because "equivalent" means the two functions must produce the same
>> > result
>> > for for all possible values in the same set of arguments,
>>
>> That is one possible definition of "equivalent" but it is not the one
>> used in the Functions and Operators document...
>>
>> You can never guarantee that two expressions are equivalent in your
>> sense, because of "errors and optimization". Any construct might raise
>> an error - in the case of this example, stack overflow if the recursion
>> gets too deep.
>>
>> Liam
>>
>> --
>> Liam Quin, https://www.delightfulcomputing.com/
>> Available for XML/Document/Information Architecture/XSLT/
>> XSL/XQuery/Web/Text Processing/A11Y training, work & consulting.
>> Carefoot Web-slave for historical images http://www.fromoldbooks.org/

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.