On Sep 18, 5:17 pm, falcon <[EMAIL PROTECTED]> wrote:
> Google often brings me to the cells website, but I haven't been able
> to figure out what it exactly is, you are right about the
> documentation.

I've met Ken Tilton (Cells' author) at LispNYC, so here's what I've
gathered -- you define a Model (a CLOS object), which contains Cells
(slots of that object).  Each Cell is defined by an expression, which
may include references to other cells.  Whenever the value of one Cell
changes, all the other Cells that depend on it are automatically re-
evaluated.  You can also add triggers that call a function whenever a
Cell's value changes.

There's a global state counter.  All Cells must be completely
evaluated at state N before they can advance to state N+1.  So
circular dependencies work correctly.

Basically, it's event-driven programming, so it's cool for GUIs or
modeling physical systems, but Kenny has also applied it general-
purpose algorithms, like tree search.

Were it to be implemented in Clojure, you'd probably leave out the
Models (which aren't necessary) and then somehow attach a value
expression to a Ref (or Agent?).  Transactions and immutability should
make it easier than in CL.  Agents may even get you half-way there,
but I don't entirely understand Agents yet.

-Stuart
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to