I don't remember seeing an xquery function that tries to return it's
input unchanged.
Can this be improved:
declare function local:id($e as element()?, $acc as element()?) as
element() {
if (empty($e)) then
$acc
else
local:id(()
, element {node-name($e)} {
$e/@*
, for $node in $e/node()
return typeswitch($node)
case element() return local:id($node, $acc)
default return $node
})
};
The idea is that functions that do more than return their input could be
based on the function, and benefit from tail call optimization.
Kendall
_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk