Xquery 在循环中调用方法

Xquery 在循环中调用方法,xquery,Xquery,我有以下方法 declare private function local:get-range($count as xs:integer, $skip as xs:integer, $start as xs:integer, $end as xs:integer) as xs:integer* { let $newStart := $end + 1 let $newEnd := $end + $skip let $endCorrection := if ($newEnd >

我有以下方法

declare private function local:get-range($count as xs:integer, $skip as xs:integer, $start as xs:integer, $end as xs:integer) as xs:integer*
{
  let $newStart := $end + 1
  let $newEnd := $end + $skip

  let $endCorrection := if ($newEnd > $count) then ($newEnd = $count) else ()

  return ($newStart, $newEnd)
};
它接受几个整数参数并返回两个整数的数组

下面是我如何使用它

let $start := 0
let $end := 0
for $iteration in (1 to 7)
let $startEnd := local:get-range(7, 1, $start, $end)
let $start := $startEnd[1]
let $end := $startEnd[2]
return $start

我循环7次传入$start和$end,并在循环中更新start和end作为方法调用返回的值。我预计第一次通话后$start为1,第二次通话后$start为2,以此类推。但每次结果都是1。我做错了什么?

作为函数式编程语言,XQuery的变量是不可变的,如果为当前范围重新定义变量,可以将其视为隐藏的常量

XQuery中的循环仅用于处理序列的所有成员,而不是对(重复更改的)值重复应用操作


如果您想执行这种循环,请使用递归。

作为函数式编程语言,XQuery的变量是不可变的,如果为当前范围重新定义变量,可以将其视为隐藏的常量

XQuery中的循环仅用于处理序列的所有成员,而不是对(重复更改的)值重复应用操作


如果您想执行这种循环,请使用递归。

作为函数式编程语言,XQuery的变量是不可变的,如果为当前范围重新定义变量,可以将其视为隐藏的常量

XQuery中的循环仅用于处理序列的所有成员,而不是对(重复更改的)值重复应用操作


如果您想执行这种循环,请使用递归。

作为函数式编程语言,XQuery的变量是不可变的,如果为当前范围重新定义变量,可以将其视为隐藏的常量

XQuery中的循环仅用于处理序列的所有成员,而不是对(重复更改的)值重复应用操作


如果你想做这种循环,可以使用递归。

也许你可以解释你想要计算什么,然后我们可以帮助你在XQuery中制定一个解决方案。也许你可以解释你想要计算什么,然后我们可以帮你在XQuery中制定一个解决方案。也许你可以解释你想要什么您正在尝试计算,然后我们可以帮助您在XQuery中制定解决方案。也许您可以解释您试图计算的内容,然后我们可以帮助您在XQuery中制定解决方案。