<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Trent, <div class=""><br class=""></div><div class=""><br class=""></div><div class="">You might be interested in this article on Interactive Visual Functional Programming, from Keith Hanna (formerly of University of Kent), from ICFP 2002</div><div class=""><br class=""></div><div class="">  <a href="https://dl.acm.org/citation.cfm?id=581493" class="">https://dl.acm.org/citation.cfm?id=581493</a></div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Simon</div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On 19 Nov 2017, at 07:05, trent shipley <<a href="mailto:trent.shipley@gmail.com" class="">trent.shipley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">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.)</div><div class=""><br class=""></div><div class="">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. </div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">* Is a spreadsheet you can program from the spreadsheet a reasonable goal?</div><div class="">* Has it been done?</div><div class="">(I don't have the academic CS chops to know what keywords to use, and how search CS publications in English.)</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">So the plan is to take something like GNUmeric or LibreOffice Calc and graft on a primitive function sheet interpreter.</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">* Would using a functional language as a basic language of the project save effort and intellectual load?</div><div class=""><br class=""></div><div class="">In the longer term I'd like as much of the spreadsheet programmable as a spreadsheet to be written to run on the JVM.</div><div class=""><br class=""></div><div class="">As near as I can tell near future Java and typed functional languages, include the following options:</div><div class=""><br class=""></div><div class="">Eta,</div><div class="">Frege,</div><div class="">Kotlin and,</div><div class="">Scala.</div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">* 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? </div><div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class=""><a href="mailto:trent1967.48@outlook.com" class="">trent1967.48@outlook.com</a> (junk email address)</div><div class=""><br class=""></div><div class="">See also the spreadsheet at <a href="http://orgmode.org/" class="">http://orgmode.org/</a>  it's cool.</div></div>
_______________________________________________<br class="">Haskell-Cafe mailing list<br class="">To (un)subscribe, modify options or view archives go to:<br class=""><a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe" class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe</a><br class="">Only members subscribed via the mailman list are allowed to post.</div></blockquote></div><br class=""><div class="">
<div class=""><span style="font-family: LucidaGrande;" class="">Simon Thompson | Professor of Logic and Computation </span><br style="font-family: LucidaGrande;" class=""><span style="font-family: LucidaGrande;" class="">School of Computing | University of Kent | Canterbury, CT2 7NF, UK</span><br style="font-family: LucidaGrande;" class=""><a href="mailto:s.j.thompson@kent.ac.uk" style="font-family: LucidaGrande;" class="">s.j.thompson@kent.ac.uk</a><span style="font-family: LucidaGrande;" class=""> | M +44 7986 085754 | W </span><a href="http://www.cs.kent.ac.uk/~sjt" style="font-family: LucidaGrande;" class="">www.cs.kent.ac.uk/~sjt</a></div>

</div>
<br class=""></div></body></html>