Fork me on GitHub
#matrix
<
2023-12-29
>
kennytilton01:12:37

btw, @alandipert, one disconnect I have with the scenarios described was that Matrix apps, as I code them, work exclusively by event handlers kicking off individual state changes, so the problem dosync solves does not really register for me. The case I had where two related changes were made back-to-back actually turned into four related changes and then at five I broke down and admitted that the five properties should actually be their own "game" object. Then the "restart game" button just needed to change the current-game property to a new game, in one mutation. In a sense, MX exposed a design failure on my part. This reminds me of how

(let [a (f1) 
    . b (f2)]
 (or a b))
...breaks the MX efficiency we get from (or (f1)(f2)) , punishing if you will let abuse. Hmm, that said, watch functions like to automate things for users by kicking off sequences of changes they would normally do. Here I have the deferral function mentioned last time, and these are free to finish with yet another deferred change. But as I said, we are just pretending to be a user; normal app code would not do that.