正在关注@ DimitreNovatchev的文章Programming in XPath 3.0,并且使用BaseX GUI作为测试环境,我尝试了一些定义接受函数作为参数的函数的示例。例如。与错误声明XPath 3.0中的高阶函数:必须声明返回类型?
let $compose :=
function($f as function(), $g as function())
(代码剩下的就是这个错误不相关,但你可以把它看成Function Composition下的第三个例子。)
我从BaseX得到这个错误:
Error:
Stopped at 43-compose.xpath, 2/39:
[XPST0003] Expecting 'as', found ','.
检测到错误的位置位于逗号前的第二行。显然,处理器期望$f
参数声明不仅仅是说$f
应该是一个函数,还应该是函数的返回值。
我不知道这是否适合BaseX预期与否。据推测,Dimitre的例子在他在Balisage做演讲之前就已经成功地进行了测试。那篇文章和BaseX发布之间的XPath 3.0规范可能有所变化吗?