[xquery-talk] Global variables in XQuery

Bas de Bakker bas at x-hive.com
Thu Oct 5 10:09:34 PDT 2006

Michael Kay wrote:
> XQuery is a functional language, and like other pure functional languages,

You suggest that XQuery is a pure functional language. But it is not, 
because functions can have side effects in the sense that calling the 
same function twice with the same arguments can yield different results. 
Particularly, if the function creates a new node, it has to be a node 
with a new node identity.


let $x := <foo/> return ($x is $x)

is different from

<foo/> is <foo/>

In a language like Haskell, such a substitution of a let-variable could 
never change the result of an expression.

Bas de Bakker
X-Hive Corporation

More information about the talk mailing list