<br><br><div><span class="gmail_quote">On 9/12/06, <b class="gmail_sendername">Michael Naunton</b> <<a href="mailto:michael@naunton.us">michael@naunton.us</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
On Mon, 2006-09-11 at 15:33 -0400, Ken Tilton wrote:<br>> kt wrote:<br>><br>>          If A is eager and depends on B and A has an observer that<br>>         really really wants to stay on top of reality....<br>
><br>> I just had Cells4 kinda thought: what if all Cells are (in some new<br>> respect) lazy unless observed (directly or indirectly thru someone<br>> that is observed)?<br><br>I was using Cells4 today :)<br>
<br>So, all cells are lazy.  Check.<br>Unless observed.  Check.<br>  Observed = I ask for a cells value explicitly (in which case it is<br>             transiently observed,) or a GUI, etc, subscribes to it.</blockquote><div>
<br>I do not know about your C4, but no: Observation is not reading. Observation is an explicit declaration that one needs certain code to run when a cell changes value, and these explicit declarations are needed because the cells engine runs around changing values willy-nilly so there is no way for a programmer to handle those changes unless we create a mechanism dedicated to that express purpose. aka "observing". But we really need these observers to run. An observer might propagate the state "stop!!!" to an anti-lock brake system (via its own API).
<br><br> We have other code that reads Cells inside Cell rules and outside them in imperative code kicked off, say, by OS events. Imperative code (again, event-handlers are an example) reads what it reads. Cells guarantees they will get accurate "current" values. But there is no need for a Cell to ensure (and in fact it would be inappropriate) such event-handling code runs because some cell-mediated state gets read during event handling. Reads from Cell rules are not interesting to rerun until somehow somewhwere we come to an Observer trying to stop a car or launch a missile or whatever.
<br><br>kt<br></div></div>