Newsgroups: comp.lang.lisp,comp.lang.icon,comp.apps.spreadsheets
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!news.mathworks.com!news.kei.com!world!NewsWatcher!user
From: rpk@world.std.com (Robert P. Krajewski)
Subject: Re: Spreadsheets and Lisp {was: Letter From Ted Nelson}
Message-ID: <rpk-1306952329310001@192.0.2.1>
Sender: news@world.std.com (Mr Usenet Himself)
Nntp-Posting-Host: world.std.com
Organization: The World @ Software Tool & Die
References: <3r29km$m7p@crl11.crl.com> <D9t2v3.Fty@world.std.com> <3r4kpr$q9q@crl4.crl.com> <hbaker-0706951720170001@192.0.2.1> <3r7jqd$ihb@crl7.crl.com> <rpk-1006950123280001@192.0.2.1> <3rj0u0$bak@no-names.nerdc.ufl.edu>
Distribution: inet
Date: Wed, 14 Jun 1995 03:28:53 GMT
Lines: 36
Xref: glinda.oz.cs.cmu.edu comp.lang.lisp:18128 comp.lang.icon:3164 comp.apps.spreadsheets:9526

In article <3rj0u0$bak@no-names.nerdc.ufl.edu>, kem@prl.ufl.edu (Kelly
Murray) wrote:

>In the spreadsheet case, I would think at least RATIOs 
>(CommonLisp represents 1/3 as "1" over "3", and thus represents "one third"
>exactly rather than approximate it with floating point), 
>and perhaps even BIGNUMS would be useful (infinite precision integers)
>to give business people more confidence that the answers they get 
>are correct.  Garbage collection would seem to be important too.

True. Although for "normal" (commercial, mainstream, datatype-poor --
satisified ?) spreadsheets, GC isn't a big deal because it's hard to make
values refer to other values. Strings are pretty much the only example
where dynamic allocation comes into play, once the representation of the
matrix itself has been implemented.

With the recalc strategies I've seen, there are pointers between cells.
But the link slots are always part of the formula cell, not something that
goes away under certain conditions.

>I thought Texas Instruments used something like a "super spreadsheet" idea
>for some application that worked like this, allowing complex objects
>in the "cells".  It was implemented in Common Lisp.

When I was working at LMI, I think I saw this. There were some guys from
TI working on something called "Hypercalc" (?), and they may have been
spun off from the company (which, of course, was selling Explorers at the
time).

>This kind of thing would definitely need run-time data typing wouldn't it?

Oh yes. For example, how about about a cell pointer representation where,
if the lower two bits were non-zero, it was really an immediate 30-bit
number ? Sound familiar ? One of the cool things about doing Improv was
getting to implement little pieces of a dynamic interpreter with run-time
type checking...
