I'm thinking about spreadsheets. Has anyone ever m...
# thinking-together
h
I'm thinking about spreadsheets. Has anyone ever made a convincing interface for defining functions, using a spreadsheet interface? (I am aware that you can define functions in most modern spreadsheets, but this requires you to go to a traditional coding interface. This is obviously cheating!)
i
I have come across this a few years back and found the idea intriguing, but never delved deep into it: https://web.engr.oregonstate.edu/~burnett/Reprints/icfp03.excelFunctions.pdf
k
I've always liked LoGlo's approach: https://loglo.app/2020-06-16 Rows share a stack, which allows naturally for defining a function across multiple cells.
👍 1
☝️ 3
w
Loglo is like Forth and spreadsheets at the same time. One thought is by default showing the formula (intension) and value (extension) of a cell at the same time. Second thought is that we by default only allow one word (in the Forth sense) per cell. Third thought. Should be able to hide/fold up intermediate cells. Final thought. Then a definition is label for the formula used in some folded up cells. Using/copying the label doesn't relabel references like we're used to in spreadsheets, but also duplicates hidden/intermediate cells that we can unfold for viewing a trace. Bonus. Treat formulas acting on multiple cells respectably.
k
I experimented with folding before: In control flow: https://akkartik.name/post/2021-02-19-devlog In function calls: https://archive.org/details/akkartik-2min-20201020 The spreadsheet angle is not very obvious here, but I was very much influenced by LoGlo (and Brief).
j
Sounds like you’re interested in “sheet-defined functions”. See

https://www.youtube.com/watch?v=tfz4jdwsEaQ&t=785s

(https://www.microsoft.com/en-us/research/uploads/prod/2020/04/joharizadeh_2020_gridlets.pdf),

https://www.youtube.com/watch?v=SbkCJX71UEk

(https://www.microsoft.com/en-us/research/uploads/prod/2018/11/elastic-sdfs-5bfd1d48e9dd2.pdf), etc.
h
Thank you very much folks! I wish "SDF" didn't already mean something to me