xsl-list
[Top] [All Lists]

RE: Re: Incrementing a Global variable

2003-08-28 07:40:31
If you have a function f(x) and and expression

f(x) + f(x)

it may be optimised to 2 * f(x) which means you only have to 
calculate the function once.

However you can't do that if there is a possibility of the 
"function" doing something strange like incrementing teh 
value of some second variable y as in the first case y goes 
up by 2 and in the second it goes up by 1.

Unfortunately when it's

   f(x) is f(x)

then you do have to evaluate the function twice; expressions in XPath
2.0 are allowed to have the limited side-effect of creating new,
distinct nodes. 

The formal semanticists seem happy that this is under control, but I
can't say I've worked out all the implications for my optimizer yet!

Michael Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list