[Haskell-cafe] Speculation, OT: Program a Spreadsheet

Simon Thompson S.J.Thompson at kent.ac.uk
Sun Nov 19 20:18:02 UTC 2017


Trent, 


You might be interested in this article on Interactive Visual Functional Programming, from Keith Hanna (formerly of University of Kent), from ICFP 2002

  https://dl.acm.org/citation.cfm?id=581493

Abstract: An interactive graphical environment for supporting the development and use of Haskell applications programs is described. The environment, named Vital, is particularly intended for supporting the open-ended, incremental development style often preferred by non-specialist users in which successive steps of program development are motivated and informed by results so far obtained.Significant features of Vital include: the graphical display of data structures in a format defined by a datatype-indexed stylesheet, the way that evaluation of (possibly infinite) values is demand-driven by the action of the user scrolling around an unbounded workspace, and support for copy-and-paste graphical editing of data structures. This latter allows, for example, the user to modify a complex data structure by point-and-click operations, or to create (by functional evaluation) a regular data structure and then edit values or expressions into it. The effect of each editing operation is immediately reflected in the Haskell program source code.

Simon


> On 19 Nov 2017, at 07:05, trent shipley <trent.shipley at gmail.com> wrote:
> 
> I have a vision for a spreadsheet that is programmable as a spreadsheet itself. (Excel, for example, is programmable in VBA, but VBA requires switching modes to the VBA environment and using a non-spreadsheet idiom. Excel is not self-programmable as a spreadsheet.)
> 
> First there one function in a cell or array can reference other cells and arrays, including those that contain functions themselves. Second, IF(boolean,then,else) functions provide for selection. 
> 
> Third, the Function local scope property for a sheet in a workbook, the PARAMETER() function, and the RETURN() function allow the spreadsheet programmer to write new functions, including recursive functions.
> 
> * Is a spreadsheet you can program from the spreadsheet a reasonable goal?
> * Has it been done?
> (I don't have the academic CS chops to know what keywords to use, and how search CS publications in English.)
> 
> I have written a 30 page essay on Scriptsheets, but the essence boils down to the above. (If you, for some inexplicable reason, actually want the draft of the essay I'd be more than happy to share it with the understanding that you would provide feedback).  I call the proposal Scriptsheets.
> 
> So the plan is to take something like GNUmeric or LibreOffice Calc and graft on a primitive function sheet interpreter.
> 
> It would be natural to use C++, but the astute will note that a spreadsheet basically does not rewrite cells (unless you use a circular reference), so I'd also like to use a functional language, maybe Haskel.
> 
> * Would using a functional language as a basic language of the project save effort and intellectual load?
> 
> In the longer term I'd like as much of the spreadsheet programmable as a spreadsheet to be written to run on the JVM.
> 
> As near as I can tell near future Java and typed functional languages, include the following options:
> 
> Eta,
> Frege,
> Kotlin and,
> Scala.
> 
> Note that a spreadsheet needs to give the satisfaction of immediate results, or failing immediate results, the sensation of actively working, so if the language could be interpreted that would be a huge help.
> 
> * Which combination of typed, compiled, interpreted, FOSS functional language that runs on the JVM, JAVA, Haskell, C++, C, used in that order of preference, makes the most sense for the Java compatible functional language at the top of the preference hierarchy? 
> 
> Note also, that I have only the equivalent of an AA degree from a CIS, not a CS, perspective, so the odds are the whole idea is vaporware, unless I can determine feasibility and desirability, then sweet talk real developers to help out.
> 
> trent1967.48 at outlook.com <mailto:trent1967.48 at outlook.com> (junk email address)
> 
> See also the spreadsheet at http://orgmode.org/ <http://orgmode.org/>  it's cool.
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.

Simon Thompson | Professor of Logic and Computation 
School of Computing | University of Kent | Canterbury, CT2 7NF, UK
s.j.thompson at kent.ac.uk <mailto:s.j.thompson at kent.ac.uk> | M +44 7986 085754 | W www.cs.kent.ac.uk/~sjt <http://www.cs.kent.ac.uk/~sjt>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20171119/72f57a4d/attachment.html>


More information about the Haskell-Cafe mailing list