Solo estoy leyendo sobre el cálculo lambda para "conocerlo". Lo veo como una forma alternativa de cálculo en lugar de la máquina de Turing. Es una forma interesante de hacer cosas con funciones / reducciones (hablando en términos generales). Sin embargo, algunas preguntas me siguen molestando:
- ¿Cuál es el punto del cálculo lambda? ¿Por qué pasar por todas estas funciones / reducciones? ¿Cuál es el propósito?
- Como resultado, me pregunto: ¿qué hizo exactamente el cálculo lambda para avanzar en la teoría de la CS? ¿Cuáles fueron sus contribuciones que me permitieron tener un momento "aha" de comprender la necesidad de su existencia?
- ¿Por qué el cálculo lambda no está cubierto en textos sobre teoría de autómatas? La ruta común es pasar por varios autómatas, gramáticas, máquinas de Turing y clases de complejidad. El cálculo de Lambda solo se incluye en el plan de estudios de los cursos de estilo SICP (¿quizás no?). Pero rara vez he visto que sea parte del plan de estudios central de CS. ¿Esto implica que no es tan valioso? Tal vez no y tal vez me falta algo aquí?
Soy consciente de que los lenguajes de programación funcionales se basan en el cálculo lambda, pero no lo considero una contribución válida, ya que se creó mucho antes de que tuviéramos lenguajes de programación. Entonces, ¿de qué sirve conocer / entender el cálculo lambda, sus aplicaciones / contribuciones a la teoría?
Functional Programming
discutí sobre Haskell y un poco de Lisp. El sucesor de eso fue Principles of Programming Languages
que utilizó ML e introdujo el cálculo lambda. Como muestran algunas respuestas, ahí es realmente donde pertenece el cálculo lambda: en una clase sobre lenguajes de programación, mecanografía, etc.