The big problem with a nondeterministic random() function is not defining the 
order of execution, but preventing it being optimised out of a loop. For 
example, how do we ensure that

$xxx[random() gt 0.5]

doesn't select either all the values or none?

Anyway, we're not planning to do non-determinism. This exercise is about 
designing a deterministic way to meet the requirement.

Michael Kay
Saxonica

On 6 May 2014, at 23:48, Michael Sokolov <[email protected]> wrote:

> On 5/6/2014 6:41 PM, Michael Kay [email protected] wrote:
>>> My policy on side effects is: all expressions containing side effects are 
>>> going to be evaluated in order
>>> 
>> I do something like that in Saxon as well. But I don't attempt to define 
>> what "in order" means; for example, the order in which different global 
>> variables are evaluated. Doing this in the spec would be much more 
>> problematic.
>> 
> You don't think it would be reasonable to say something to the effect that 
> the order in which non-deterministic expressions are evaluated is 
> non-deterministic (ie implementation-defined)? Certainly it would be 
> reasonable enough in the case of a random number generator.  Although I 
> suppose if you are going to seed it, you would like the seed to effect the 
> random numbers that are generated.
> 
> -Mike
> _______________________________________________
> [email protected]
> http://x-query.com/mailman/listinfo/talk


_______________________________________________
[email protected]
http://x-query.com/mailman/listinfo/talk

Reply via email to