- From: <bugzilla@jessica.w3.org>
- Date: Mon, 05 Jul 2010 18:26:31 +0000
- To: public-qt-comments@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=10089
Summary: Missing functions
Product: XPath / XQuery / XSLT
Version: Working drafts
Platform: PC
OS/Version: Windows NT
Status: NEW
Severity: normal
Priority: P2
Component: Functions and Operators 1.1
AssignedTo: mike@saxonica.com
ReportedBy: dnovatchev@gmail.com
QAContact: public-qt-comments@w3.org
The following functions are missing from the F&O document. Most of them are
defined as operators, however operators are not really functions.
Operators cannot be manipulated as functions (passed as parameters, returned as
results, partially-applied, ..., etc). Due to this problem we end up with
well-defined and useful HOF facility that is not applicable to many important
functions, only because they are not defined as functions in the document.
Thus, for a higher order function that has as arguments:
1. a function of two arguments
2. item1
3. item2
The following functions can never be passed as the value of the first argument:
eq(), ne(), =(), !=(), lt(), gt(), ge(), le(), or(),
and(), ..., etc.
Isn't it strange that we have defined these for dates and durations but lack
the appropriate function definitions for arguments of all other types?
A small part of the listed missing functions are new in the sense that they are
not defined even as operators, but are still important and often included in
other languages.
Here is the more or less complete list of missing functions:
(Polymorphic) comparison functions:
eq() -- the "eq" operator
ne() -- the "ne" operator
lt() -- the "lt" operator
gt() -- the "gt" operator
le() -- the "le" operator
ge() -- the "ge" operator
Boolean functions:
or() -- the "or" operator
and() -- the "and" operator
xor() -- new, logical xor
implies() -- new, logical implication.
Set functions:
union() -- the "|" operator
intersection() -- the "intersect" operator
difference() -- the "except" operator
symmetric-difference() -- new, set symmetric difference
is-subset-of() -- new, set inclusion.
is-true-subset-of() -- new, true set inclusion.
is-member-of() -- new, membership of an item to a set.
set-product() -- new, Carthesian product.
Functions on functions:
apply() -- the function application operator "()"
Functions on sequences:
concat-sequence() -- the "," operator
item-at() -- the "[]" operator
filter() -- the "[]" operator
Functions on nodes:
is-same-node() -- the "is" operator
document-ordered() -- the "<<" and the ">>" operators
Proposed action: Either define the functions listed above, or specify that the
operators that are already defined in the document are functions in full right
and can be manipulated as such; then define only the functions that are marked
"new" in the above list.
--
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 Monday, 5 July 2010 18:26:32 UTC