TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Linear types, distributed compute, spreadsheets, and Lisp

3 pointsby dalyover 2 years ago
I&#x27;m wasting a bit of time working on multi-core CPUs, parallel execution, and distributed workloads.<p>Spreadsheet execution order is determined by data dependency. If cell A depends on cell B then cell B must compute first.<p>The first optimization would be partial cell computation until the dependent data is available.<p>Which thought leads me to linear types and distributed workloads. One could block a computation waiting for a result. Linear types seem like an excellent model for such communication. It is especially interesting if the communicated values are not just a simple cell value but more complex types.<p>Further down the rabbit hole is implementing the spreadsheet in lisp. Each cell has its associated lisp function. The interesting aspect here is that you transform a &quot;time-based&quot; model of computation to a &quot;dependency-based&quot; model. Such a model is easily distributed.<p>One could write a &quot;spreadsheet macro&quot; in lisp with a list of functions to embed in particular cells.<p>For a recent discussion see:<p>Homoiconic spreadsheets&#x2F; What, How &amp; Why (by Eli Parra) https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=U9uZlEqUQw0&amp;ab_channel=LondonClojurians

4 comments

crsnover 2 years ago
@daly I’m working on something relevant here and would love to discuss; email me: carson@carsonkahn.com
dalyover 2 years ago
The key distinction between Eli&#x27;s approach and mine has to do with the primary approach. Eli is enhancing a spreadsheet. I&#x27;m approaching the problem as a new programming approach.<p>I&#x27;m suggesting that you could change the linear, time-oriented evaluation of code within your program without explicitly using a spreadsheet. This change of control flow based on spreadsheet-like dependency gives new freedom for things like distributed computing. Also unlike spreadsheets, there is no need to update only a single cell.
tony-allanover 2 years ago
Obvious but i&#x27;ve not thought about it before...<p><pre><code> Interlinked with the value rule: - All data cells can be read for any code cell - A code cell&#x27;s writes only the value of its data cell </code></pre> <a href="https:&#x2F;&#x2F;youtu.be&#x2F;U9uZlEqUQw0?t=474" rel="nofollow">https:&#x2F;&#x2F;youtu.be&#x2F;U9uZlEqUQw0?t=474</a> (start at 7:51)
tony-allanover 2 years ago
<a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=U9uZlEqUQw0&amp;ab_channel=LondonClojurians">https:&#x2F;&#x2F;www.youtube.com&#x2F;watch?v=U9uZlEqUQw0&amp;ab_channel=Londo...</a>