[Bug 29693] New: [XP31] Order of result of SimpleMapExpr

https://www.w3.org/Bugs/Public/show_bug.cgi?id=29693

            Bug ID: 29693
           Summary: [XP31] Order of result of SimpleMapExpr
           Product: XPath / XQuery / XSLT
           Version: Candidate Recommendation
          Hardware: PC
                OS: Windows NT
            Status: NEW
          Severity: normal
          Priority: P2
         Component: XPath 3.1
          Assignee: jonathan.robie@gmail.com
          Reporter: abel.braaksma@xs4all.nl
        QA Contact: public-qt-comments@w3.org
  Target Milestone: ---

Under 3.15 Simple Map Operator (!) we say, among other things:

"These sequences are concatenated and returned. The returned sequence preserves
the orderings within and among the subsequences generated by the evaluations of
E2; otherwise the order of the returned sequence is implementation-dependent."

I'm not sure I fully understand this sentence. It seems to me that it says
that:

(1, 2) ! .

can return (1, 2) or (2, 1), depending of order of evaluation. This would fit
the "orderings within subsequences". But I am not sure what the "ordering among
subsequences" means. For instance:

(1, 2) ! ((3, 4), ., (5, 6))

Here I see three subsequences, (3,4), (.), and (5,6). Are that the subsequences
this text refers to and their order with respect to one another should be
maintained? I.e., are the following two outcomes both legal?

 (3, 4, 1, 5, 6, 3, 4, 2, 5, 6)
 (3, 4, 2, 5, 6, 3, 4, 1, 5, 6)

If so, I am surprised about this rule, as I would expect the bang-operator to
return the items in sequence order. Evaluation order is undefined, of course,
but returned sequence should (I think) be in the order of the input sequence
(the left-hand operand).

In either case, may I suggest we either add an example, or a Note, that
explains this more clearly?

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Saturday, 11 June 2016 14:34:54 UTC