Replies: 1 comment
-
|
Useful example and I agree it is an argument in favour of revising the semantics even for 16.7 for these properties. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
This is something which is envisaged as part of the algebra-of-games API planned for 17.0.
Presently, relations like
Node.outcomeorNode.infosetare evaluated "immediately" and resolve to an object which is realised physically in memory (ultimately it's a shared pointer to an allocated structure). We have developed a sense that we want to move away from this, and to treat these as a form of selector.There is another justification for this, which is that the existing API is inconsistent in this regard. Consider the sequence below:
As implemented,
Node.childrenactually returns an object which is evaluated, in effect, lazily on iteration. So if the set of children of the node change, the output of iterating the collection changes.However, predicates that resolve to individual objects rather than collections are evaluated immediately. For example,
This is (in my view) an argument in favour of revising the semantics even for 16.7 for these properties. I claim that most of the time, the intention when referring to objects via these relations is in the sense of a predicate.
g.root.infosetmeans "the information set to which the root node of the game belongs", which may change as the game mutates;g.root.outcomewould mean "the outcome associated with the root node (if any)", which likewise might change.Beta Was this translation helpful? Give feedback.
All reactions