zlacker

[parent] [thread] 5 comments
1. eru+(OP)[view] [source] 2023-11-27 23:46:24
Something like SKI calculus seems a lot less arbitrary than lambda calculus in terms of representation, perhaps.
replies(1): >>chrisw+u7
2. chrisw+u7[view] [source] 2023-11-28 00:32:45
>>eru+(OP)
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 )
replies(2): >>eru+QF >>Madnes+AK
◧◩
3. eru+QF[view] [source] [discussion] 2023-11-28 05:54:54
>>chrisw+u7
Writing 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.

◧◩
4. Madnes+AK[view] [source] [discussion] 2023-11-28 06:46:52
>>chrisw+u7
I don't think your day and my day are quite the same.
replies(1): >>chrisw+k51
◧◩◪
5. chrisw+k51[view] [source] [discussion] 2023-11-28 10:37:22
>>Madnes+AK
Lambda 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-reducti...
replies(1): >>eru+hN3
◧◩◪◨
6. eru+hN3[view] [source] [discussion] 2023-11-29 02:44:14
>>chrisw+k51
As an aside: alas, η-reduction is not something that's properly supported in Python.
[go to top]