Elastic Sheet-Defined Functions: Generalising Spreadsheet Functions to Variable-Size Input Arrays
Sheet-defined functions (SDFs) bring modularity and abstraction to the world of spreadsheets. Alas, end users naturally write SDFs that work over fixed-size arrays, which limits their re-usability. To help end user programmers write more re-usable SDFs, we describe a principled approach to generalising such functions to become elastic SDFs 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.
Q&A (for conference registrants): Although there is no official Q&A for the Asia showing of the JFP talks, we will set up an unofficial Q&A session for this talk with connection information announced at the showing.
Captioned videos: The captions here were produced from the original transcript using YouTube’s sync service, so they may be more accurate in the words than the professional captions on the official conference stream but inferior in other technical respects (timing, breaking, etc.). For captions that don’t overlap the slides, you can “show transcript” on YouTube, stream the open-captioned MP4, or get the MKV and configure the closed captions yourself (fewer browsers can stream it than the MP4). Matt welcomes suggestions of better ways to provide captions.