- From: <bugzilla@jessica.w3.org>
- Date: Thu, 15 Sep 2011 06:36:32 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=14152 Summary: A enumerator function Product: XPath / XQuery / XSLT Version: Working drafts Platform: PC OS/Version: Windows XP Status: NEW Severity: normal Priority: P2 Component: XPath 3.0 AssignedTo: jonathan.robie@gmail.com ReportedBy: vladimir@nesterovsky-bros.com QAContact: public-qt-comments@w3.org I would like the WG to consider an addition of a function that turns a sequence into a enumeration of values. Consider a function like this: fn:enumerator($items as item()*) as function() as item(); alternatively, signature could be: fn:enumerator($items as function() as item()*) as function() as item(); This function receives a sequence, and returns a function item, which upon N's call shall return N's element of the original sequence. This way, a sequence of items is turned into a function providing a enumeration of items of the sequence. As an example consider two functions: a) t:rand($seed as xs:double) as xs:double* - a function producing a random number sequence; b) t:work($input as element()) as element() - a function that generates output from it's input, and that needs random numbers in the course of the execution. t:work() may contain a code like this: let $rand := fn:enumerator(t:rand($seed)), and later it can call $rand() to get a random numbers. Enumerators will help to compose algorithms where one algorithm communicate with other independant algorithms, thus making code simpler. The most obvious class of enumerators are generators: ordered numbers, unique identifiers, random numbers. Technically, fn:enumerator() is nondetermenistic, but its "side effect" is similar to a "side effect" of a function generate-id() from a newly created node (see bug #13747, and bug #13494). -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the QA contact for the bug.
Received on Thursday, 15 September 2011 06:36:36 UTC