Utility selector is a tool responsible for selecting one of evaluated Contexts based on scores produced by evaluators. Selector Context can take form of any built-in or user-defined data type.
Returns the most suitable Context based on data fed to the function.
Selector will consider only Contexts with highest rank and choose most suitable one depending on selection method provided by user.
the selection method - MAX or ROULETTE
a collection of Contexts and corresponding evaluators
validator - a function determining whether an evaluated Context is valid and can be chosen at the moment of selection