>What are you working on, /g/?
Game tree search: expectimax with alpha-beta pruning, but there is one outcome per chance node that might eventually loop back to a previously visited chance node. So I have to return 2 parts: a known value + a loop object which consists of P(loop) + a canonical key for the node it loops back to. then i can resolve the loop when it gets back to the chance node the loop goes back to with conditional probability and solving a linear system of 1 equation and 1 variable. On the way back up to that loop i might encounter MAX or MIN nodes that run into loop objects but after drawing many diagrams i've set it up so that every max/min node that encounters a result with a loop object will be comparing 2 of the same loop object so they can ignore the loop object and compare only the known part. then alpha and beta have to be bounded by the max/min value of the loop component* the loop probability. current problem is i need to get memoization/caching working again because right now it might cache loop objects which would be stupid and they might not resolve properly. going to see if i can put results with loop objects in the cache with the hope that by the time we visit them again, the loop component will also have a fixed number in the cache, so when i look that up in the cache i can resolve it to a constant.