
What is PLUS times PLUS?
About this video
2swap explores lambda calculus using John Tromp's lambda diagrams, with animated beta-reductions, asking what PLUS times PLUS gives. It touches on Church encodings and the equivalence of Turing machines and lambda calculus.
Why it appears in the archive
Mentioned in lambda calculus and combinator threads as a visual entry point to the topic.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
I also liked the one on lambda calculus. I hope one day we will be able to find interpretation of what it actually means for PLUS Times Plus. Maybe this is how we will explore nonstandard arithmetic. What is PLUS times PLUS? [VIDEO]
Read original comment ↗True, thanks for clarification that would be this one - [LINK] as I just started learning lambda calculus and this one helped Also this is where I got the interest from - [VIDEO]
Read original comment ↗I don't know much about any of this, and I'm far from an expert on the lambda calculus. But I skimmed paper by OP, which is informative: [LINK] The lambda calculus is an alternate model of computation created by Alonzo Church in the 1930s. It's basically a restricted programming language where the only things you can do are define anonymous functions, and apply those anonymous functions to input variables or the output of other functions. The Lambda calculus statement And = λp.λq.p q p is more conventionally notated as And(p, q) = p(q(p)). You can reduce lambda expressions -- basically, this is "Simplifying this program as far as possible" what you expect a good optimizing compiler to do. When there are multiple possible simplifications, which one should you pick? This is a complicated problem people basically solved years ago, but the solutions are also complicated and have a lot of moving parts. OP came up with a graph-based system called ∆-Nets that is less complicated and more clearly explained than the older solutions. ∆-Nets is a lot easier for people to understand and implement, so it might have practical applications making better performance and tooling for lambda-calculus-based programming languages. Which might in turn have practical benefits for areas where those languages are used (e.g. compilers). The linked simulation lets you write a lambda calculus program, see what it looks like as a ∆-Net graph, and click to simplify the graph. It's only tangentially relate
Read original comment ↗For comparison: factorial(3) visualized in two different notations. John Tromp's Lambda Diagrams (via 2swap): [VIDEO] Bubble Notation: [LINK]
Read original comment ↗Combinators are math, and a little like Lisp - building functions from primitives and operations with the ability to apply them, where even the notion of variables are functions - functions all the way down. The y combinator is this: λf.(λx.x x)(λx.f(x x)) Lambda diagrams get you visualizations like this: [LINK] When considering logic and functions, when thinking in the space of combinators, you can ask questions like "What is Plus times Plus" and have a sensible result. [VIDEO] Combinators are awesome. The site linked by OP is a specific collection of combinators with bird names, riffing on the "To Mock a Mockingbird" puzzle book and subsequent meme of giving combinators bird names.
Read original comment ↗