3 ms·
The author has also implemented Binary Combinatory Logic. I also find combinators more "natural" than lambda calculus (although the latter is certainly more use
by chriswarbo 3y ago
The author has also implemented Binary Combinatory Logic. I also find combinators more "natural" than lambda calculus (although the latter is certainly more useful day-to-day!); however, I still find lambda calculus a reasonable foundation since the Binary Lambda Calculus self-interpreter is shorter than the Binary Combinatory Logic self-interpreter (e.g. see the author's page at http://tromp.github.io/cl/cl.html http://tromp.github.io/cl/cl.html )
- eru 3y agoWriting programs in lambda calculus is definitely more enjoyable than in eg SKI calculus. I think if you express your lambda calculus bindings in terms of De Bruijn indices, it might seem less arbitrary, too.
- MadnessASAP 3y agoI don't think your day and my day are quite the same.
- chriswarbo 3y agoLambda calculus is present in most "modern" programming languages, i.e. those which use lexical scope rather than global or dynamic scope; and those which call functions to return results (especially first-class functions) rather than jumping to subroutines for their effects. It's why Python functions are written with the keyword `lambda`, and it's why Amazon's function-as-a-service product is called Lambda. For example, say you're refactoring some code and come across: def foo(x): return bar(x) You decide to simplify this definition to: foo = bar Congratulations, you've just performed η-reduction! https://en.wikipedia.org/wiki/Lambda_calculus#%CE%B7-reduction https://en.wikipedia.org/wiki/Lambda_calculus#%CE%B7-reducti...
- eru 3y agoAs an aside: alas, η-reduction is not something that's properly supported in Python.