This would reduce the source state space by a factor of up to the factorial of the hand size. The highest I've seen commonly is 4 hands, which comes out to 24-fold.
- What if we only want some of the hands to be distinguishable?
- Same thing but for pools?
- It doesn't seem possible to produce the same sorting for both ascending and descending pop order, since this would involve future information.
- Can we just add some equivalence classes to
MultiDeal? The proposed equivalence class would be the deck and the sorted remaining hand sizes. However, I don't think this works, because we lose the connection to the previously-dealt cards in each index -- in fact, the hands could end up with the wrong number of cards!
- Instead, I think we would have to assign and pin the hands to indexes at the moment they become distinguishable.
Related, is it worthwhile to have tuple evaluators?
- Double
any. Though this might be better served by merge + regular any.
any + a positive-"sticky" bool evaluation / all + a negative-"sticky" bool evaluation. The trouble is that we still need to keep track of which specific hands are invalided / still in the running, so the only possible gain would be after exiting the outcome window, where we can collapse down to just a single bool.
max_sum: would require non-negative outcomes and counts
- Do we need custom evaluators for every case, or is there any clean way to do some sort of mapping, even if it only supports a limited set of evaluations?
- I wouldn't put too much effort if it's merely syntactic sugar with no performance benefit; expensive operations should not get special effort to make easy to write.
- More?
This would reduce the source state space by a factor of up to the factorial of the hand size. The highest I've seen commonly is 4 hands, which comes out to 24-fold.
MultiDeal? The proposed equivalence class would be the deck and the sorted remaining hand sizes. However, I don't think this works, because we lose the connection to the previously-dealt cards in each index -- in fact, the hands could end up with the wrong number of cards!Related, is it worthwhile to have tuple evaluators?
any. Though this might be better served by merge + regularany.any+ a positive-"sticky" bool evaluation /all+ a negative-"sticky" bool evaluation. The trouble is that we still need to keep track of which specific hands are invalided / still in the running, so the only possible gain would be after exiting the outcome window, where we can collapse down to just a single bool.max_sum: would require non-negative outcomes and counts