The equivalence holds for how it functionally behaves, not for what 
grammar the parser allows. You need parentheses:

("1.2.3" => tokenize("\."))[. < "3"]


John

On 13/04/2017 20:09, Joe Wicentowski wrote:
> Hi all,
>
> As I understand the arrow operator
> (https://www.w3.org/TR/xquery-31/#id-arrow-operator), the following
> query:
>
>    "1.2.3" => tokenize("\.")
>
> is equivalent to:
>
>     tokenize("1.2.3", "\.")
>
> If this is so, then can anyone shed light on why appending a predicate
> to the former would raise an error but not so for the latter?  In
> Saxon, eXist, and BaseX, the following expression:
>
>    "1.2.3" => tokenize("\.")[. < "3"]
>
> raises an error like:
>
>    XPST0003: Unexpected token "[" beyond end of query
>
> whereas the pre-XQuery 3.1 approach:
>
>     tokenize("1.2.3", "\.")[. < "3"]
>
> returns the results I'd expect:
>
>    ("1", "2")
>
> Thanks,
> Joe
> _______________________________________________
> [email protected]
> http://x-query.com/mailman/listinfo/talk


-- 
John Snelson, Principal Engineer              http://twitter.com/jpcs
MarkLogic Corporation                         http://www.marklogic.com

_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to