gpt4 book ai didi

xquery - XQuery 表达式求值的示例不是顺序的

转载 作者:行者123 更新时间:2023-12-01 09:12:17 25 4
gpt4 key购买 nike

我正在寻找一个示例,它表明 XQuery 表达式评估不是顺序的。在将 XQuery 的功能特性与过程语言进行比较时,总是会提到这一点。

例如在 XQuery, 2nd edition ,在下面的部分:

The FLWOR expression with its for clause is similar to loops in procedural languages such as C. However, one key difference is that in XQuery, because it is a functional language, the iterations are considered to be in no particular order. They do not necessarily occur sequentially, one after the other.

最佳答案

一般而言,该语言的设计目的是让您无法判断评估的顺序是什么,这使得很难证明它不是您所期望的。要观察评估的实际顺序,您需要做一些有副作用的事情,这通常意味着偏离语言规范并使用供应商扩展。例如,您可以使用 EXPath 文件模块并调用 file:append-text(),然后检查添加到外部文本文件的条目的顺序。

当然,如果文件中的条目完全按照您期望的顺序排列,这并不能证明任何事情。查询处理器不会仅仅为了好玩而使用不明显的执行顺序。他们只会在通过更改顺序获得一些东西时才会这样做。例如,Saxon 将延迟评估变量,直到它们被使用,并且如果可以的话,会将表达式从循环中取出。但是你有一个问题,如果你使用像 file:append-text() 这样有副作用的函数来观察这种行为,Saxon 可能会检测到你的代码有副作用并抑制优化.

关于xquery - XQuery 表达式求值的示例不是顺序的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58446934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com