3 ms·
> The lambda calculus is only more useful because it's become the basis for a lot of existing programming languages. But there's a reason for that. Functions m
by justinpombrio 2y ago
> The lambda calculus is only more useful because it's become the basis for a lot of existing programming languages.
But there's a reason for that. Functions make a good basis for programming languages. It's not the only good basis! Concatenative combinators make a good basis too: see Factor and Joy.
If you take the lambda calculus and add numbers and a few operations on them, it's easy to program in it. Likewise for the concatenative calculus. But not so for NAND gates or SK combinators. You certainly can do anything you want with them, but doing so feels more like solving a logic puzzle than programming. I am likewise skeptical about the tree calculus.
- lolinder 2y agoI'm skeptical that we'd feel that way if Church didn't come first. His work defined the field and shaped the way we all think about programming in profound ways that make it very difficult to distinguish how natural one is over the other.
- justinpombrio 2y agoMaybe for some people. Personally I find the concatenative calculus more natural to think about/in than the lambda calculus!
- thesz 2y agoTuring published the same year as Church, couple of months later. Church's advantage was very small. Turing machine includes write over some place, thus it models a calculating man with infinite paper, infinite pencil and infinite eraser. Lambda calculus models calculating man with infinite paper and infinite pencil. Lambda calculus has very substantial advantage here.