Re: Just can't hear enough about Cells?



Ken Tilton <kentilton@xxxxxxxxx> writes:
Frank Buss wrote:
Ken Tilton wrote:


Gee, are Pythonistas smarter than Lispniks?!:

http://www.eby-sarna.com/pipermail/peak/2006-May/002545.html


This sounds interesting. Maybe more people would be interested in Lisp
Cells, too, if some ideas of this text would be added to the Cells
documentation. Looks like currently there is not much documentation or
papers about the concepts at all.

Oh, yes, it's all my fault. PWUAHAHAHAHAAH! Which sections of which
docs, examples, and Usenet articles were confusing to you? Or should I
just guess at that from the profound silence of the CL commuity and
rewrite all of that every week until someone says something?

I must confess that until I read the pipermail article I
hadn't grasped why Cells was interesting. If we are having a
competition for a very short but intriguing Cells intro here
is my entry:

`Cells' tracks and manages dependencies for you. For example
if X and Y are exogenous variables, A and B endogenous
variables and F and G functions, with

A = (F X Y) and B = (G A X)

when you update Y, Cells will update A and also propagate
the change, updating B as well.

Why use Cells? Why not just roll your own as needed?
Well, there is more to this than meets the eye. Consider
updating X. A naive dependency tracker may update B (because
X changed) then update A before finally updating B again
because A changed. Worse, it might not do this, depending on
the order in which A and B are declared.

Cells does the right thing, queuing the updates in the
efficient order, with B being updated exactly once, after A.
Choosing to use the Cells framework lets you design out
a whole class of subtle dependency bugs.

Marks out of 10 please Ken?

Alan Crowe
Edinburgh
Scotland

.



Relevant Pages

  • Re: A critic of Guidos blog on Pythons lambda
    ... (also, not do the internal dependency tracking on, say, b if it happens to hold an immutable value (part of the Cells API). ... Each ruled Cell keeps track of its memoized value, datapulse stamp, and whether it in fact changed value in reaching its current datapulse stamp. ... This is a cascade of further notifications if anyone notified recomputes and in fact computes a different value. ...
    (comp.lang.python)
  • Re: I never did this before...
    ... Cells created: 7000 ... 1200, a shocker, but 1000 are kludges to avoid insane dependency on the mouse position that is trivial to handle imperatively and another hundred are similarly multitudes of OS-event hooks used so not everyone ends up sitting there waiting on every click event. ... Intriguing histogram of length of dependency chain: ... probably 900 low-functionality input cells as an optimization trick. ...
    (comp.lang.lisp)
  • Re: Calculation speed and workbook size
    ... Excel sets aside some memory to maintain a dependency table - ... calculate cells that are dependent. ... On larger workbooks, however, if this table size is exceeded then ...
    (microsoft.public.excel.misc)
  • Re: I never did this before...
    ... of sixteen algebra problems with each algebraic node implemented ... Input cells: 1200, a shocker, but 1000 are kludges to avoid insane ... dependency on the mouse position that is trivial to handle imperatively ... change) and the tooltip has to be cool cuz it has to show them the ...
    (comp.lang.lisp)
  • I never did this before...
    ... Cells created: 7000 ... 1200, a shocker, but 1000 are kludges to avoid insane dependency on the mouse position that is trivial to handle imperatively and another hundred are similarly multitudes of OS-event hooks used so not everyone ends up sitting there waiting on every click event. ... Intriguing histogram of length of dependency chain: ... probably 900 low-functionality input cells as an optimization trick. ...
    (comp.lang.lisp)