0
$\begingroup$

I am a programmer by hobby. I stumbled upon lambda calculus from Kevlin Henney's talk lambdas to the slaughter and I was sold! It was an interesting new way of thinking that's entirely different than the way most of us program. But if I want to push someone to learn lambda calculus, what concrete benefits can I state.

I tried for long but the only one I could come up with is that its fun to play around. And it acts as the base of functional programming.

P.S. when I first heard about Lisp I couldn't understand why so many C brackets. After spending some time with lambda calculus, now I know ;P

$\endgroup$
2
  • $\begingroup$ Depends on their motivation. I think what hooked me was seeing how such a simple system could faithfully encode booleans, natural numbers, lists, and pairs from which you could make whatever else you needed (e.g. any tagged union). I came at that already knowing how to program in Haskell more or less however so what I saw was "wow this 3 rule grammar and single reduction rule gives everything you need!" $\endgroup$
    – Jake
    Nov 29, 2020 at 17:11
  • $\begingroup$ That was exactly what got hooked me too! I am now attending mit open course on SICP. And everything I learnt in lambda calculus applies to LISP. And it awestruck me how can we build entire applications out of such a simple concept of values (procedures happen to be just named lambdas :P) $\endgroup$
    – Hemil
    Nov 30, 2020 at 7:10

2 Answers 2

2
$\begingroup$

Your question is a bit like this: "I am a programmer by hobby, and I learned about von Neumann machines. Why should I care about them?" And the answer is: because they're the theoretical model of computing machines that transformed our society.

Your question about the $\lambda$-calculus has a similar, but less grandiose answer. The $\lambda$-calculus was invented before Turing machines as an answer to "what is computation?" In itself it is not terribly practical, but it has been immensly influential in programming. Many programming concepts that we use today originated in the $\lambda$-calculus. Various languages support $\lambda$-calculus to various degrees, but almost all of them are in debt to $\lambda$-calculus to some degree (even the ones that are claimed to be "anti" $\lambda$-calculus).

If you are a hobby programmer, you should learn a programming language with good support for $\lambda$-calculus, as that will give you the joy of actually using the concepts. For instance, you can try one of the following:

Many popular languages have partial support for $\lambda$-calculus, which they implement to varying degree. If you know one of them, you could try the functional programming style (which is what $\lambda$-calculus is about), but keep in mind it's not the Real Thing:

LISP belongs to this list as well, as it does not have true support for $\lambda$-abstraction.

$\endgroup$
7
  • $\begingroup$ Oh no. I mean I found it intriguing. But no many people know about it. Is there something I can do to make my friends interested in this? I have a production app deployed on a server that i developed alone if that counts. I am learning lisp using mit open (classic) course sicp $\endgroup$
    – Hemil
    Nov 30, 2020 at 8:48
  • $\begingroup$ $\lambda$-calculus is slowly but steadily creeping into mainstream programming languages. It's gaining in importance. It could not have done so before around 1990 because compilers for it were not very efficient. $\endgroup$ Nov 30, 2020 at 8:51
  • $\begingroup$ okay. that's fair enough i guess? $\endgroup$
    – Hemil
    Nov 30, 2020 at 10:49
  • $\begingroup$ If you're learning Lisp to learn functional programming then you're picking the wrong language, in my opinion. You'd be better of with scheme (the new Lisp), or Racket (the new scheme). Or you could switch to typed languages and try Haskell or OCaml. $\endgroup$ Nov 30, 2020 at 12:38
  • $\begingroup$ I am learning lisp to understand sicp $\endgroup$
    – Hemil
    Nov 30, 2020 at 13:31
0
$\begingroup$

You can't. The lambda calculus itself isn't a great practical programming language. But it forms as a basis for functional programming, which is useful. See https://en.wikipedia.org/wiki/Functional_programming.

$\endgroup$
1
  • $\begingroup$ So basically, I have one good reason - It serves as a basis for functional programming? I agree its not a practical language. You really don't wanna calculate by applying functions so many times ;P $\endgroup$
    – Hemil
    Oct 31, 2020 at 15:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.