Interface NondeterministicFunctionEvaluator

All Superinterfaces:
FunctionEvaluator

public interface NondeterministicFunctionEvaluator extends FunctionEvaluator
An executor of a function which is non-deterministic. That is, given the same inputs, the function may return a different value for each invocation. Examples of such functions are a random value generator or a function returning the current time.

Functions which behave in this way should implement this interface so that the framework can recognize them as such. Failure to do so may lead to unexpected results since the framework may apply optimizations, such as constant folding, which cannot be used in the non-deterministic case.