[cells-devel] Newbie questions

rpgoldman at real-time.com rpgoldman at real-time.com
Tue Mar 8 19:40:00 UTC 2005


>>>>> "Kenny" == Kenny Tilton <ktilton at nyc.rr.com> writes:

    Kenny> Mike J. Bell wrote:

[...snip...]

    Kenny> Cells have always grown in response to application
    Kenny> requirements, so if someone comes up with a good example I
    Kenny> will gladly look at implementing cycles in Cells. The
    Kenny> question is, how can a = f(b) and b=f(a) ever be computed?
    Kenny> In your example, there is no real cycle, because you are
    Kenny> saying: "dollars is a function of yen /when changes/, and
    Kenny> yen is a function of dollar /when dollar changes/." Only
    Kenny> one can be changing at a time, so there is no cycle as the
    Kenny> problem is conceived.

    Kenny> But how is an instance initialized? I can supply conversion
    Kenny> rules for dollar-balance and yen-balance, but how do I get
    Kenny> the intial balance in there? I would need to specify a
    Kenny> starting value, but for which one?  Both? What if I specify
    Kenny> 1 for both? That conversion would be wrong, the dollar is
    Kenny> (for now) worth more than 1 yen.

    Kenny> Conceivably the answer is to let the programmer worry about
    Kenny> it. I could specify a value (and the conversion rule) for
    Kenny> dollar-balance and specify "unbound" and a rule for all
    Kenny> other currencies. Then if the others get accessed, the
    Kenny> system just calculates as usual. If all values are unbound
    Kenny> a runtime error results. If the programmer specifies
    Kenny> inconsistent initial values they get a wrong result (which
    Kenny> we might be able to detect at some point of runtime) until
    Kenny> some SETF perturbs the model and the formulas kick in to
    Kenny> make things consistent.

    Kenny> Thoughts on this?

IIRC, Garnet's KR has a mechanism (one might call it "a cheap hack")
to solve the problem of cyclic dependencies, which was to allow you to
"plonk" an initial value into a slot that would be used to kick the
whole mess off.

Best,
Robert



More information about the cells-devel mailing list