There exists a rich theory about duality in computation, a forgotten
twin of lambda calculus:
sequent calculus
https://ps.cs.uni-tuebingen.de/publications/ostermann22intro...
I recommend you check it out if you are at least a little curious
about duality in programming.
I've been thinking about duality at the core of programming language
design for a while now. Motivated by asynchronous computation and
mainly focused on the question: How to build programming abstractions
from input-output-duality? It is fascinating seeing the common
abstractions just naturally evolve from there.
As a preliminary result I wrote a theory of computation:
http://perma-curious.eu/e3lli/core/
It describes how to go from input-output-duality to an advanced lisp dialect.
I've been thinking about duality at the core of programming language design for a while now. Motivated by asynchronous computation and mainly focused on the question: How to build programming abstractions from input-output-duality? It is fascinating seeing the common abstractions just naturally evolve from there.
As a preliminary result I wrote a theory of computation: http://perma-curious.eu/e3lli/core/ It describes how to go from input-output-duality to an advanced lisp dialect.