{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:54:00Z","timestamp":1776891240179,"version":"3.51.2"},"reference-count":23,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"3","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":4878,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1995,7]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>It has been claimed that recent developments in the research on the efficiency of code generation and on graphical input\/output interfacing have made it possible to use a functional language to write efficient programs that can compete with industrial applications written in a traditional imperative language. As one of the early steps in verifying this claim, this paper describes a first attempt to implement a spreadsheet in a lazy, purely functional language. An interesting aspect of the design is that the language with which the user specifies the relations between the cells of the spreadsheet is itself a lazy, purely functional and higher order language as well, and not some special dedicated spreadsheet language. Another interesting aspect of the design is that the spreadsheet incorporates symbolic reduction and normalisation of symbolic expressions (including equations). This 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. The resulting application is by no means a fully mature product. It is not intended as a competitor to commercially available spreadsheets. However, with its higher order lazy functional language and its symbolic capabilities it may serve as an interesting candidate to fill the gap between calculators with purely functional expressions and full-featured spreadsheets with dedicated non-functional spreadsheet languages. This paper describes the global design and important implementation issues in the development of the application. The experience gained and lessons learnt during this project are discussed. Performance and use of the resulting application are compared with related work.<\/jats:p>","DOI":"10.1017\/s0956796800001404","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:11:58Z","timestamp":1226056318000},"page":"383-414","source":"Crossref","is-referenced-by-count":15,"title":["Implementing a functional spreadsheet in clean"],"prefix":"10.46298","volume":"5","author":[{"given":"Walter A. C. A. J","family":"De Hoon","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Luc M. W. J","family":"Rutten","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Marko C. J. D","family":"van Eekelen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"25203","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800001404_ref021","unstructured":"Vuillemin J. (1987). Arithm\u00e9tic r\u00e9elle exacte par les fractions continues. Technical Report 760, INRIA, France."},{"key":"S0956796800001404_ref019","volume-title":"Proc. Workshop Graph Transformations in Computer Science","author":"Smetsers","year":"1993"},{"key":"S0956796800001404_ref017","unstructured":"Plasmeijer M. J. and van Eekelen M. C. J. D. (1995) Clean 1.0 Reference Manual. Technical Report, University of Nijmegen, The Netherlands (in preparation), draft available at http:\/\/www.cs.kun.nl\/nclean."},{"key":"S0956796800001404_ref022","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.142"},{"key":"S0956796800001404_ref018","first-page":"183","article-title":"Functional Programming Comes of Age","volume":"19","author":"Pountain","year":"1994","journal-title":"Byte Magazine"},{"key":"S0956796800001404_ref008","doi-asserted-by":"publisher","DOI":"10.1145\/130981.130982"},{"key":"S0956796800001404_ref009","first-page":"1097","article-title":"The Eductive Implementation of a Three-Dimensional Spreadsheet","volume":"20","author":"Du","year":"1990","journal-title":"Software - Practice and Experience"},{"key":"S0956796800001404_ref016","volume-title":"Functional Programming and Parallel Graph Rewriting","author":"Plasmeijer","year":"1993"},{"key":"S0956796800001404_ref012","unstructured":"de Hoon W. A. C. A. J. , Rutten L. M. W. J. and van Eekelen M. C. J. D. (1994) FunSheet: A Functional Spreadsheet. In: Proc. 6th International Workshop on the Implementation of Functional Languages, Norwich, UK, pp. 11.1\u201311.24."},{"key":"S0956796800001404_ref020","first-page":"199","volume-title":"Research topics in Functional Programming","author":"Turner","year":"1990"},{"key":"S0956796800001404_ref006","doi-asserted-by":"crossref","unstructured":"Carlsson M. and Hallgren Th . (1993) Fudgets \u2013 A Graphical User Interface in a Lazy Functional Language. In: Proc. Conference on Functional Programming Languages and Computer Architecture, Copenhagen, Denmark, pp. 321\u2013330. ACM Press.","DOI":"10.1145\/165180.165228"},{"key":"S0956796800001404_ref014","doi-asserted-by":"crossref","first-page":"202","DOI":"10.1007\/3-540-54152-7_66","volume-title":"Proc: Parallel Architectures and Languages Europe","author":"N\u00f6cker","year":"1991"},{"key":"S0956796800001404_ref015","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158524"},{"key":"S0956796800001404_ref003","doi-asserted-by":"crossref","unstructured":"Barendsen E. and Smetsers J. E. W. (1993) Conventional and Uniqueness Typing in Graph Rewrite Systems (extended abstract). In: Shyamasundar R. K. , ed., Proc. 13th Conference on the Foundations of Software Technology and Theoretical Computer Science, Bombay, India, December 15\u201317. Lecture Notes in Computer Science Vol 761, pp. 41\u201351. Springer-Verlag.","DOI":"10.1007\/3-540-57529-4_42"},{"key":"S0956796800001404_ref001","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800001258"},{"key":"S0956796800001404_ref004","unstructured":"Boon J. (1994) A Purely Functional Spreadsheet. Third Year Project Report. University of York, UK."},{"key":"S0956796800001404_ref023","unstructured":"Yoder A. and Cohn D. L. (1994) Real Spreadsheets for Real Programmers. Technical Report 94\u20139, University of Notre Dame."},{"key":"S0956796800001404_ref002","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-17945-3_8"},{"key":"S0956796800001404_ref010","volume-title":"Simply Scheme: Introducing Computer Science","author":"Harvey","year":"1994"},{"key":"S0956796800001404_ref005","doi-asserted-by":"crossref","unstructured":"Brus T. , van Eekelen M. C. J. D. , van Leer M. O. and Plasmeijer M. J. (1987) Clean: A Language for Functional Graph Rewriting. In: Kahn G. , ed., Proc. 3rd International Conference on Functional Programming Languages and Computer Architecture, Portland, Oregon, USA.","DOI":"10.1007\/3-540-18317-5_20"},{"key":"S0956796800001404_ref007","first-page":"43","volume-title":"Research Topics in Functional Programming","author":"Cartwright","year":"1990"},{"key":"S0956796800001404_ref013","doi-asserted-by":"publisher","DOI":"10.1016\/0164-1212(90)90095-4"},{"key":"S0956796800001404_ref011","unstructured":"de Hoon W. A. C. A. J. (1993) Designing a spreadsheet in a pure functional graph rewriting language. Computer Science Master Thesis 300, University of Nijmegen, The Netherlands."}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800001404","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:18:06Z","timestamp":1776889086000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800001404\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1995,7]]},"references-count":23,"journal-issue":{"issue":"3","published-print":{"date-parts":[[1995,7]]}},"alternative-id":["S0956796800001404"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800001404","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1995,7]]}}}