{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:56Z","timestamp":1779836756328,"version":"3.53.1"},"reference-count":22,"publisher":"Cambridge University Press (CUP)","license":[{"start":{"date-parts":[[2020,8,21]],"date-time":"2020-08-21T00:00:00Z","timestamp":1597968000000},"content-version":"unspecified","delay-in-days":233,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2020]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    <jats:italic>Sheet-defined functions<\/jats:italic>\n                    (SDFs) bring modularity and abstraction to the world of spreadsheets. Alas, end users naturally write SDFs that work over\n                    <jats:italic>fixed-size<\/jats:italic>\n                    arrays, which limits their reusability. To help end user programmers write more reusable SDFs, we describe a principled approach to\n                    <jats:italic>generalising<\/jats:italic>\n                    such functions to become\n                    <jats:italic>elastic SDFs<\/jats:italic>\n                    that work over inputs of arbitrary size. We prove that under natural, checkable conditions, our algorithm returns the principal generalisation of an input SDF. We describe a formal semantics and several efficient implementation strategies for elastic SDFs. A user study with spreadsheet users compares the human experience of programming with elastic SDFs to the alternative of relying on array-processing combinators. Our user study finds that the cognitive load of elastic SDFs is lower than for SDFs with map\/reduce array combinators, the closest alternative solution.\n                  <\/jats:p>","DOI":"10.1017\/s0956796820000234","type":"journal-article","created":{"date-parts":[[2020,8,21]],"date-time":"2020-08-21T06:18:01Z","timestamp":1597990681000},"source":"Crossref","is-referenced-by-count":11,"title":["Elastic sheet-defined functions: Generalising spreadsheet functions to variable-size input arrays"],"prefix":"10.1017","volume":"30","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-4814-5148","authenticated-orcid":false,"given":"MATT","family":"MCCUTCHEN","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0001-9716-0147","authenticated-orcid":false,"given":"JUDITH","family":"BORGHOUTS","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5809-2484","authenticated-orcid":false,"given":"ANDREW D.","family":"GORDON","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-6085-1435","authenticated-orcid":false,"given":"SIMON","family":"PEYTON JONES","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-5401-3478","authenticated-orcid":false,"given":"ADVAIT","family":"SARKAR","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2020,8,21]]},"reference":[{"key":"S0956796820000234_ref21","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/8647.001.0001","volume-title":"Spreadsheet Implementation Technology: Basics and Extensions","author":"Sestoft","year":"2014"},{"key":"S0956796820000234_ref20","first-page":"85","volume-title":"VL\/HCC","author":"Sarkar","year":"2018"},{"key":"S0956796820000234_ref16","first-page":"1","article-title":"Build systems \u00e0 la carte","volume":"2","author":"Mokhov","year":"2018","journal-title":"PACMPL"},{"key":"S0956796820000234_ref18","first-page":"95","volume-title":"VL\/HCC","author":"Pandita","year":"2018"},{"key":"S0956796820000234_ref15","volume-title":"Research Design Explained","author":"Mitchell","year":"2012"},{"key":"S0956796820000234_ref13","doi-asserted-by":"crossref","unstructured":"McCutchen, M. , Itzhaky, S. & Jackson, D. (2016) Object Spreadsheets: A new computational model for end-user development of data-centric web applications. In Proceedings of the 2016 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software, Onward! 2016, New York, NY, USA: ACM, pp. 112\u2013127.","DOI":"10.1145\/2986012.2986018"},{"key":"S0956796820000234_ref17","unstructured":"Paine, J. (2008) Ensuring spreadsheet integrity with model master. arXiv preprint arXiv:0801.3690."},{"key":"S0956796820000234_ref14","unstructured":"Mendes, J. & Saraiva, J. (2017) Tabula: A language to model spreadsheet tables. CoRR, abs\/1707.02833."},{"key":"S0956796820000234_ref12","unstructured":"Jansen, B. (2015) Enron versus euses: A comparison of two spreadsheet corpora. arXiv preprint arXiv:1503.04055."},{"key":"S0956796820000234_ref11","doi-asserted-by":"crossref","first-page":"139","DOI":"10.1016\/S0166-4115(08)62386-9","article-title":"Development of NASA-TLX (Task Load Index): Results of empirical and theoretical research","volume":"1","author":"Hart","year":"1988","journal-title":"Hum. Mental Workload"},{"key":"S0956796820000234_ref4","first-page":"57","article-title":"On the semantics for spreadsheets with sheet-defined functions","author":"Bock","year":"2020","journal-title":"J. Comput. Lang."},{"key":"S0956796820000234_ref5","doi-asserted-by":"crossref","first-page":"101","DOI":"10.2307\/249313","article-title":"The importance of learning style in end-user training","volume":"14","author":"Bostrom","year":"1990","journal-title":"MIS Quart."},{"key":"S0956796820000234_ref22","doi-asserted-by":"crossref","unstructured":"Sestoft, P. & S\u00f8rensen, J. Z. (2013) Sheet-defined functions: Implementation and initial evaluation. In International Symposium on End User Development. Springer, pp. 88\u2013103.","DOI":"10.1007\/978-3-642-38706-7_8"},{"key":"S0956796820000234_ref7","doi-asserted-by":"crossref","first-page":"293","DOI":"10.1017\/S0956796805005794","article-title":"Gencel: A program generator for correct spreadsheets","volume":"16","author":"Erwig","year":"2006","journal-title":"J. Funct. Program."},{"key":"S0956796820000234_ref3","doi-asserted-by":"crossref","unstructured":"Blackwell, A. F. , Burnett, M. M. & Jones, S. P. (2004) Champagne prototyping: A research technique for early evaluation of complex end-user programming systems. In 2004 IEEE Symposium on Visual Languages and Human Centric Computing. IEEE, pp. 47\u201354.","DOI":"10.1109\/VLHCC.2004.10"},{"key":"S0956796820000234_ref10","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1561\/2500000010","article-title":"Program synthesis","volume":"4","author":"Gulwani","year":"2017","journal-title":"Foundat. Trends Program. Lang."},{"key":"S0956796820000234_ref2","doi-asserted-by":"crossref","unstructured":"Blackwell, A. F. (2002) First steps in programming: A rationale for attention investment models. In IEEE 2002 Symposia on Human Centric Computing Languages and Environments, 2002. Proceedings. IEEE, pp. 2\u201310.","DOI":"10.1109\/HCC.2002.1046334"},{"key":"S0956796820000234_ref1","unstructured":"Ambler, A. (1987) Forms: Expanding the visualness of sheet languages. In 1987 Workshop on Visual Languages. Tryck-Center Link\u00f6ping, pp. 105\u2013117."},{"key":"S0956796820000234_ref6","doi-asserted-by":"crossref","unstructured":"Caine, K. (2016) Local standards for sample size at CHI. In Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems. ACM, pp. 981\u2013992.","DOI":"10.1145\/2858036.2858498"},{"key":"S0956796820000234_ref8","volume-title":"Discovering Statistics Using IBM SPSS Statistics","author":"Field","year":"2013"},{"key":"S0956796820000234_ref19","doi-asserted-by":"crossref","unstructured":"Peyton Jones, S. , Blackwell, A. & Burnett, M. (2003) A user-centred approach to functions in Excel. In Proceedings of the Eighth ACM SIGPLAN International Conference on Functional Programming, ICFP\u201903. New York, NY, USA: ACM, pp. 165\u2013176.","DOI":"10.1145\/944705.944721"},{"key":"S0956796820000234_ref9","doi-asserted-by":"crossref","first-page":"131","DOI":"10.1006\/jvlc.1996.0009","article-title":"Usability analysis of visual programming environments: A \u2018cognitive dimensions\u2019 framework","volume":"7","author":"Green","year":"1996","journal-title":"J. Vis. Lang. Comput."}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796820000234","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:36:52Z","timestamp":1779835012000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796820000234\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2020]]},"references-count":22,"alternative-id":["S0956796820000234"],"URL":"https:\/\/doi.org\/10.1017\/s0956796820000234","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2020]]},"article-number":"e26"}}