- From: <bugzilla@jessica.w3.org>
- Date: Tue, 26 Jan 2016 12:03:34 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29393 Bug ID: 29393 Summary: Include a convenience operator for applying a function to each item in a sequence Product: XPath / XQuery / XSLT Version: Working drafts Hardware: PC OS: Linux Status: NEW Severity: enhancement Priority: P2 Component: XQuery 3.1 Assignee: jonathan.robie@gmail.com Reporter: dk@basex.org QA Contact: public-qt-comments@w3.org Target Milestone: --- XQuery 3.1 introduces the arrow operator to apply a function to an item in a much more readable way. In the same spirit, I would like to apply a function to items in a sequence in such a nice and easily readable way. Suppose, we have a sequence ("a", "b", "c") and we want to get a sequence of upper-case letters as a result. So using the ! operator we can get each item in the sequence and using the arrow operator we can apply the upper-case function. This will result in the following code: ("a", "b", "c") ! (. => upper-case()) which isn't really easier readable anymore because of the required parenthesis. It would be much nicer if we could add an operator, lets say ==>, which would apply the function for each item in the sequence, so we would simply write: ("a", "b", "c") ==> upper-case() This gets even more relevant if the expression is longer. Lets take the example from the spec for the arrow operator at https://www.w3.org/TR/2014/WD-xquery-31-20140424/#id-arrow-operator: tokenize((normalize-unicode(upper-case($string))),"\s+") Suppose, instead of a $string we have a $sequence. Currently, we would have to write: $item ! (. =>upper-case()=>normalize-unicode()=>tokenize("\s+")) With a new operator this would change to $item==>upper-case()=>normalize-unicode()=>tokenize("\s+") which removes difficult to read and nested parenthesis. So to sum up, this double arrow operator is a postfix operator that applies a function to each item in a seuqnece, using each item as the first argument to the function.] If $s is a sequence and f() is a function, then $s==>f() is equivalent to $s ! f(.) or $s ! (. => f()) -- You are receiving this mail because: You are the QA Contact for the bug.
Received on Tuesday, 26 January 2016 12:03:37 UTC