Awesome! This is the most interesting thing I’ve seen in a while - I’m also interested in visualizing programs and learning from models from other domains. Current software / programming language models don’t really seem to capture the right problems.
Thanks :) The best part of the internet is getting to share interesting ideas with other people.
I worked in a lot of chemical reaction simulation code and there is an interesting similarity between those concrete simulations and this sort of logic. You end up having to still take account of how many electrons a given (real) atom has or at least how many electrons your set of C atoms vs H atoms have, and at the same time make sure they never go beyond the limits of their orbitals. In the end, what this seems to be doing is creating functions that act the same regardless of the order of their inputs (f a b) = (f b a) which is fine for addition, but probably becomes a major pain once you have to do any serious entity level accounting. Still an interesting thought if you encapsulated state properly. In essence all reducer functions act this way ideally, right?
Cool. An idea if to explore if you are interested in the order of inputs, is to use function molecules that could curry the argument (like in Clojure’s partial), and became another new function molecule.