XQuery:声明一个函数不返回任何内容

时间:2016-06-11 08:05:20

标签: xquery basex

insertseq

我需要在脚本运行时收集一些全局序列。在脚本的最后我释放序列。函数$ basex test.xqy Stopped at /Users/jack/Documents/SHK/XSD2OWL/Workspace/xqy/test.xqy, 7/4: [XPTY0004] Item expected, sequence found: ("a", "b"). 必须不返回任何内容。有可能使用XQuery吗?或者还有其他技巧吗?

BaseX出错:

angle

1 个答案:

答案 0 :(得分:3)

原始问题标题的答案实际上是:

declare function local:f() as empty-sequence() {
  ()
};

由于您可能想要解决特定问题,您可以考虑使用其他标题和相应的问题描述(包括具有预期输入和输出的小例子)创建新问题。

在函数式语言(如XQuery)中,一旦定义了变量,就不能重新赋值(参见Referential Transparency)。因此,您需要使用递归函数重复向序列添加值。 fn:fold-left也可以使用:第一次使用时会感觉很有挑战性,但一旦你理解了它的作用,你就不想错过了。