- From: <bugzilla@jessica.w3.org>
- Date: Sun, 15 May 2016 18:42:32 +0000
- To: public-qt-comments@w3.org
https://www.w3.org/Bugs/Public/show_bug.cgi?id=29627
Bug ID: 29627
Summary: Appendix examples eg:highest, eg:lowest - proposed
improvement
Product: XPath / XQuery / XSLT
Version: Candidate Recommendation
Hardware: PC
OS: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Functions and Operators 3.1
Assignee: mike@saxonica.com
Reporter: hrennau@yahoo.de
QA Contact: public-qt-comments@w3.org
Target Milestone: ---
The current examples assume a value getter function which maps an item to
exactly one atomic value. In practise, typical candidates for such a value
getter more often than not may also produce the empty sequence, for example due
to the rare but not impossible absence of some XML element or attribute.
Please consider making the example a little more realistic by assuming a value
getter function with this signature:
function(item()) as xs:anyAtomicType?
The implementation of eg:higest, for example, might then look like this:
declare function eg:highest(
$seq as item()*,
$getValue as function(item()) as xs:anyAtomicType?)
as item()* {
fold-left(
$seq,
(),
function($highestSoFar as item()*, $item as item()) as item()* {
let $value := $getValue($item)
let $highestValue := $highestSoFar[1] ! $getValue(.)
return
if (empty($value)) then $highestSoFar
else if ($value > $highestValue or empty($highestSoFar)) then $item
else if ($value = $highestValue) then ($highestSoFar, $item)
else $highestSoFar
}
)
};
--
You are receiving this mail because:
You are the QA Contact for the bug.
Received on Sunday, 15 May 2016 18:42:34 UTC