basex icon indicating copy to clipboard operation
basex copied to clipboard

XQuery: self-dependencies

Open ChristianGruen opened this issue 10 years ago • 4 comments

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

ChristianGruen avatar Mar 11 '15 17:03 ChristianGruen

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)

ChristianGruen avatar Oct 22 '20 11:10 ChristianGruen

Related (see #1951):

declare variable $f := function($a) {
  if($a < 1) then $a else $a + $f($a - 1)
};
$f(10)

…shouldn’t raise XPST0008.

ChristianGruen avatar Jan 04 '21 09:01 ChristianGruen

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)

ChristianGruen avatar Feb 19 '23 19:02 ChristianGruen

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)

ChristianGruen avatar Oct 10 '23 06:10 ChristianGruen