Spreadsheet functional programming

  title={Spreadsheet functional programming},
  author={David Wakeling},
  journal={Journal of Functional Programming},
  pages={131 - 143}
  • D. Wakeling
  • Published 1 January 2007
  • Computer Science, Economics
  • Journal of Functional Programming
Abstract The functional programming community has shown some interest in spreadsheets, but surprisingly no one seems to have considered making a standard spreadsheet, such as Excel, work with a standard functional programming language, such as Haskell. In this paper, we show one way that this can be done. Our hope is that by doing so, we might get spreadsheet programmers to give functional programming a try. 
Static Analysis of Spreadsheet Applications for Type-Unsafe Operations Detection
A static analysis that detects all run-time type-unsafe operations in spreadsheets, based on an abstract interpretation of spreadsheet applications, including spreadsheet tables, global re-evaluation and associated programs and supports the features commonly found in real-world spreadsheets.
WebSheets: Web Applications for Non-Programmers
WebSheets is proposed, a new paradigm for developing web applications using a spreadsheet-like language that can enable simple web applications to be developed without "programming," in much the same way that non-programmers create budgets or expense reports using spreadsheets.
An Abstract Domain to Infer Types over Zones in Spreadsheets
An abstract interpretation based static analysis for spreadsheet programs that infers type constraints over zones of spreadsheets, viewed as two-dimensional arrays is proposed.
Implementing function spreadsheets
The goal of this work is to develop implementations of function sheets and study their application to realistic examples and to report briefly on experiments with function sheets as well as other uses of the spreadsheet core implementation.
Reasons for spreadsheet-errors are many folded. One of the main reasons for these errors that spreadsheet applications are mainly designed for end-users who are not specified in programming, however
Translating Relational Queries into Spreadsheets
It is demonstrated that a spreadsheet can implement all data transformations definable in SQL, merely by utilizing spreadsheet formulas, and a query compiler is provided, which translates any given SQL query into a worksheet of the same semantics, including NULL values.
On the semantics for spreadsheets with sheet-defined functions
Problem Solving in Sprego
A converted authentic table is presented and, based on this table, data retrieval tasks, their algorithms, and coding in full details are presented, to demonstrate the power which lies within Sprego.
Spreadsheet-based template language prototype for tree data structure description and interpretation
A language prototype for tree data structure description in a spreadsheet environment is suggested and an interpreter which generates a spreadsheet output according to the description written in the language prototype is presented.
Spreadsheet as a relational database engine
This paper demonstrates that a spreadsheet can play the role of a relational database engine, without any use of macros or built-in programming languages, merely by utilizing spreadsheet formulas.


Implementing a Functional Spreadsheet in Clean
This paper describes a first attempt to implement a spreadsheet in a lazy, purely functional language and introduces the possibility of asking the system to prove equality of symbolic cell expressions: a property which can greatly enhance the reliability of a particular user-defined spreadsheet.
Why Functional Programming Matters
This paper shows that two features of functional languages in particular, higher-order functions and lazy evaluation, can contribute significantly to modularity.
Forms/3: A first-order visual language to explore the boundaries of the spreadsheet paradigm
This paper shows that procedural abstraction, data abstraction and graphics output can be supported in the spreadsheet paradigm, and shows that, with the addition of a simple model of time, animated output and GUI I/O also become viable.
Haxcel A spreadsheet interface to Haskell written in Java.
An extended array library for Haskell is presented, which provides a number of typical array-language facilities and provides an interactive environment that can be used both for development of general Haskell code and for array-oriented spreadsheet calculations.
Real programmers don't use spreadsheets
Spreadsheets were invented more than ten years ago and they are used as the only or primary computer language by millions of computer users [14]. However, the only reference that has been seen by the
Validating the unit correctness of spreadsheet programs
XeLda, the authors' tool for unit checking Excel spreadsheets, is described, which highlights cells if their formulas process values with incorrect units and if derived units clash with unit annotations.
A type system for statically detecting spreadsheet errors
An implementation of the system that allows the user to check Microsoft Excel spreadsheets and defines the concept of a header and discusses two types of relationships between headers, namely is-a and has-a relationships.
A user-centred approach to functions in Excel
We describe extensions to the Excel spreadsheet that integrate user-defined functions into the spreadsheet grid, rather than treating them as a "bolt-on". Our first objective was to bring the
Composing contracts: an adventure in financial engineering (functional pearl)
A combinator library that allows us to describe financial and insurance contracts precisely, and a compositional denotational semantics that says what such contracts are worth.
Why no one uses functional languages
Functional languages are the language of choice for writing theorem provers, including the HOL system which helpeddebug the design of theHP 9000line of multiprocessors.