Estou apenas lendo o cálculo lambda para "conhecê-lo". Eu vejo isso como uma forma alternativa de computação, em oposição à Máquina de Turing. É uma maneira interessante de fazer coisas com funções / reduções (falando grosseiramente). Algumas perguntas continuam me incomodando:
- Qual é o objetivo do cálculo lambda? Por que passar por todas essas funções / reduções? Qual é o propósito?
- Como resultado, fico pensando: o que exatamente o cálculo lambda fez para avançar a teoria da CS? Quais foram as contribuições que me permitiram ter um momento "aha" de entender a necessidade de sua existência?
- Por que o cálculo lambda não é abordado nos textos sobre a teoria dos autômatos? A rota comum é passar por vários autômatos, gramáticas, máquinas de Turing e classes de complexidade. O cálculo Lambda é incluído apenas no currículo dos cursos no estilo SICP (talvez não?). Mas raramente vi isso como parte do currículo principal do CS. Isso implica que não é tão valioso? Talvez não e talvez eu esteja perdendo alguma coisa aqui?
Estou ciente de que as linguagens de programação funcionais são baseadas no cálculo lambda, mas não estou considerando isso como uma contribuição válida, pois foi criada muito antes de termos linguagens de programação. Então, qual é realmente o sentido de conhecer / entender o cálculo lambda, escrever suas aplicações / contribuições à teoria?
Functional Programming
discuti Haskell e um pouco de Lisp. O sucessor disso foi o Principles of Programming Languages
que usou o ML e introduziu o cálculo lambda. Como algumas respostas mostram, isso é realmente onde lambda calculus pertence: em uma classe sobre linguagens de programação, digitação, etc.