basex
basex copied to clipboard
XQuery: self-dependencies
Query:
declare variable $a := function-name(local:f#0);
declare function local:f() { $a };
local:f()
Expected:
local:f
Returns:
[XQDY0054] Static variable depends on itself
Related (see https://www.mail-archive.com/[email protected]/msg13171.html):
declare variable $local:test := local:test#1 ;
declare %private function local:test( $i) { if ( $i > 0) then $local:test( $i - 1) } ;
$local:test( 10)
Related (see #1951):
declare variable $f := function($a) {
if($a < 1) then $a else $a + $f($a - 1)
};
$f(10)
…shouldn’t raise XPST0008.
Related:
declare variable $f := map {
'A': function($r, $f) { $r/x ! $f?B(., $f) },
'B': function($r, $f) { $r/x ! $f?A(., $f) }
};
$f?A(<a/>, $f)
Related:
let $even := fn($n, $self, $odd) {
$n = 0 and $odd($n - 1, $odd, $self)
}
let $odd := fn($n, $self, $even) {
$n != 0 or $even($n - 1, $even, $self)
}
return $even(1, $even, $odd)