Scriptsheets

trent shipley trent.shipley at gmail.com
Fri Nov 3 00:31:41 MST 2017


Middle posting follows.

On Thu, Nov 2, 2017 at 2:45 PM Matt Birkholz <matt at birchwood-abbey.net>
wrote:

> On Thu, 2017-11-02 at 17:51 +0000, trent shipley wrote:
> > Right, it's not scripting using a classic programming environment,
> > like VBA, the BASIC that comes with LibreOffice, or  Python.
> >
> > The idea is that you extend the spreadsheet idiom to program the
> > spreadsheet from a sheet or virtual workbook in the spreadsheet
> > without leaving the spreadsheet to work in a classical imperative
> > programming environment like VBA or Python.
> >
> >
> >   |A               | B              | C              |
> > 1|PARAMETERS(B1,C1)|<put input here>|<put input here>|
> > 2|                 |                |                |
> > 3|RETURN(B1*C1)    |                |                |
> > FUNCTION SHEET("MY_FUNCTION")
>
> That is very reminiscent of Emacs' Org-mode, which has plain text
> spreadsheets like the above.  With a key stroke or three a "source code
> block", a script written in any of a variety of languages, can be fed
> such tables and the results captured in the document as text, table,
> plot...
>
> There is a cool org-mode document demonstrating genetic drift using R
> plots and a little LaTeX for an equation.  Here it is rendered for the
> web.
>
> http://www.stats.ox.ac.uk/~davison/software/org-babel/drift.org.html
>
> People use org-mode for everything from literate programming to
> reproducible research to organizing their lives (calendars and task
> lists).
>
> http://orgmode.org/


It looks like an interesting little tool. As one of it's tricks, it has a
built in text spreadsheet you can use with Emacs Calc and Emacs Lisp. Emacs
can be SO cool.

How do you use the spreadsheet. Can you program in the spreadsheet?

I didn't mean for my little prototype to imply I'm dreaming of a text tool.
I want Scriptsheets to be a GUI environment (by stealing from the likes of
GNUmeric or LibreOffice Calc); albeit a minimalist core GUI that can be
enhanced with plugins.

Think of it this way. Traditional spreadsheets HAVE a programming language
and an environment for the language. Scriptsheets will BE a programming
language.


>
> > You have data, it's a spreadsheet.
> > The moral equivalent of sequence is referencing another cell,
> > including one that contains a function.
> > You have selection with the IF() function.
>
> You speak of morality and then call IF a function.  Blasphemer!
>

In a spreadsheet IF() is definitely a function.


> > With the addition of just two keywords, PARAMETERS and RETURN you
> > have real functions.
>
> What's a "key word"??
>

Keyword? Reserved word?

There are actually at least three things involved.

*Declaring (or in a GUI marking the property) that a sheet is for a
function. This creates a local scope so the effects of the function don't
propagate through the workbook, except for the effect of the RETURN(S).

*Declaring cells that will be parameters. In a spreadsheet, that is going
to look like a function.

* Returning a result. That looks like a function too.


> > You have looping with functions calling themselves (recursion), and
> > possibly circular references.
> >
> > My understanding is that's a complete programming paradigm.
>
> Fun!  Can you do it with coconuts?
>

If you have a very fault tolerant Babbage class computer, you can probably
do it with coconuts.


> ---------------------------------------------------
> PLUG-discuss mailing list - PLUG-discuss at lists.phxlinux.org
> To subscribe, unsubscribe, or to change your mail settings:
> http://lists.phxlinux.org/mailman/listinfo/plug-discuss
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phxlinux.org/pipermail/plug-discuss/attachments/20171103/a489ffce/attachment.html>


More information about the PLUG-discuss mailing list