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
