Jacob Zimmerman
03/20/2024, 5:26 PMIvan Reese
Jacob Zimmerman
03/20/2024, 11:47 PMDennis Hansen
03/21/2024, 7:23 PMDennis Hansen
03/21/2024, 7:26 PMDennis Hansen
03/21/2024, 7:28 PMDon Abrams
03/21/2024, 9:28 PMDennis Hansen
03/21/2024, 9:32 PMavon
03/22/2024, 4:37 AMwtaysom
03/22/2024, 4:43 AMA1 = 24.0
.
• Set A2 = A1 * 9 / 5 + 32
.
• Come back to edit A1. Type "x". What should happen to A2? For a usual spreadsheet, the answer is nothing. When active, a cell's state shouldn't propagate, so make that part of the model in the first place.
• Hit enter. We expect A2 to go funny in some way, ideally a way that points back to A1 as the source of the type error. An advantage of something like the propagator model is that you can wire your network as the basic level and then independently experiment with the semantics of error propagation.
What about versioning? Versioning is useful for collaboration, yes. And undo is essential for any non-trivial model that you can mess up. But a real potential is realized in having the system make a bunch of version of things and then combine them. For instance, make a bunch of copies of A1 and A2. Vary A1 and chart how it affects A2. So instead of having separate looping constructs, just allow for clones/copies of the parts of the model.
And if you make time first-class, instead of distinguishing between a clone and a copy, you can choose to either modify the original before or after copies were made to get a similar effect. An advantage is that you now have a well-defined semantics for conflicts when an embellishment of a clone is incompatible with a change to the original. You can pinpoint: this operation no longer works.Jacob Zimmerman
03/25/2024, 7:15 PMDennis Hansen
05/23/2024, 7:02 PM