<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">I think Pivotal (&lt;<A href="http://www.cs.kent.ac.uk/projects/pivotal/">http://www.cs.kent.ac.uk/projects/pivotal/</A>&gt;) has the "live update" behavior of spreadsheets.<DIV><BR class="khtml-block-placeholder"></DIV><DIV>I haven't played with it yet, but I saw Keith Hanna show off his earlier Vital system; it even updates "backwards" in some sense; see the "Direct manipulation" section at his site (&lt;<A href="http://www.cs.kent.ac.uk/projects/pivotal/adt-manip.html">http://www.cs.kent.ac.uk/projects/pivotal/adt-manip.html</A>&gt;). </DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Finally, it also does some nice things with graphics, a la Conal's Pan (and now Eros), probably could do Jerzy/Clastic-type stuff, too.</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>  --  Fritz</DIV><DIV><BR><DIV><DIV>On Jan 31, 2007, at 4:06 AM, Bjorn Lisper wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <BLOCKQUOTE type="cite"><P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">But...suppose we had a spreadsheet a little like Haskell where each</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">cell has a static type, and the values can be Haskell functions. What</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 10.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">interesting things could we do with it that we couldn't do with Excel?</FONT></P> </BLOCKQUOTE><P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">I had a MSc student doing something in this direction some years ago. He</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">made a Haskell interface which was intended to work like a spreadsheet. In</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">this interface, every declaration has a value window (if the entity declared</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">has a showable type) and a declaration window. A designated button triggers</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">a recompilation, and thus also a recalculation of all declared values -</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">this, I think, captures the essence of spreadsheets which is to be able to</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">make changes and quickly see the results. In order to support the kind of</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">array omputations often done in spreadsheets, an extended array module was</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">defined which declares a number of array functions and other conveniences.</FONT></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><BR></P> <P style="margin: 0.0px 0.0px 0.0px 0.0px"><FONT face="Helvetica" size="3" style="font: 12.0px Helvetica">See <A href="http://www.mrtc.mdh.se/index.php?choice=projects&id=0041">http://www.mrtc.mdh.se/index.php?choice=projects&amp;id=0041</A>.</FONT></P> </BLOCKQUOTE></DIV><BR></DIV></BODY></HTML>