¿Qué matemática se requiere para entender el cálculo lambda?

Depende de qué nivel quieras entender.

Para entender simplemente el cálculo lambda en sí mismo como un sistema, no necesita mucha información. El cálculo lambda es básicamente autónomo. Autónomo y bastante simple . Puede aprender cómo funciona y cómo usarlo sin ninguna matemática externa.

Comprender por qué es significativo es una historia diferente. El cálculo de Lambda es interesante por algunas razones diferentes, y algunas de ellas requieren un poco de matemática. Originalmente, el cálculo lambda se desarrolló como un sistema para estudiar la lógica formal, por lo que querrá al menos una comprensión básica de los sistemas lógicos formales para entenderlo desde esta perspectiva. Tal vez incluso un poco de teoría de modelos sería bueno aquí.

Esto puede ser bastante profundo, pero no es crucial: también puedes entender el cálculo lambda como un lenguaje de programación , desde la perspectiva de la programación y CS. Desearía un poco de conocimiento teórico de CS para el contexto, es decir, la tesis de Church-Turing, pero eso es todo. Si su objetivo principal es pensar en el diseño del lenguaje de programación, entonces el cálculo lambda es un lugar maravilloso para comenzar, independientemente de sus antecedentes.

Finalmente, si desea profundizar en el uso del cálculo lambda para analizar programas , necesitará un poco más de matemáticas. Esto es solo una cosa que hacer con el cálculo lambda, por supuesto, y no lo necesitará al principio, pero es importante. Aquí, aparte de la lógica formal que mencioné anteriormente, también querrá sentirse cómodo con las pruebas matemáticas y la teoría de conjuntos y un poco de teoría de dominio, que, con la “madurez matemática” podría aprender sobre la marcha, que necesidad de semántica denotacional.

Si desea profundizar en la teoría de tipos, deberá sentirse cómodo con todo lo que he enumerado hasta ahora (lógica formal, teoría de conjuntos, teoría de modelos) y probablemente un poco de teoría de categorías.

El punto es que, dependiendo de lo que quiera lograr, la cantidad de matemáticas que necesita varía desde “prácticamente ninguna” hasta una selección de temas fundamentales generalmente reservados para cursos de posgrado en matemáticas puras.

Creo que el mejor lugar para comenzar, si está interesado en el aspecto matemático del cálculo lambda, es obtener una comprensión básica de lo que son las matemáticas reales, primero. Leer un libro o dos sobre eso puede ayudar. Uno que leí fue “El arte de las matemáticas”, de Jerry King. La razón por la que digo que este es el currículo típico de matemáticas en la mayoría de las escuelas no enseña qué es realmente la matemática. Solo habla sobre cómo aplicar las reglas matemáticas para obtener resultados o hacer pruebas. Enseña aspectos de las matemáticas, pero las matemáticas son más que eso.

Estoy tentado a ofrecer el cálculo como una analogía aproximada para el cálculo lambda, porque parte de lo que le preocupa es lo que las matemáticas llaman funciones, que tienen un poco de parecido con las funciones en el cálculo lambda, ya que puede tener funciones que toman otras funciones como parámetros, y produce nuevas funciones a través de derivados e integrales. No es exactamente lo mismo, ya que en el cálculo lambda, las nuevas funciones se construyen mediante el proceso de sustitución de variables con valores o funciones, y luego aplicando una función a esos valores, mientras que en el cálculo usando matemáticas cartesianas, obtienes una nueva función estrictamente siguiendo se descubrió el proceso diferencial, pero al menos te familiarizas con la idea de transformar funciones de una cosa a otra sustituyéndolas o aplicándoles operaciones.

La forma más simple de responder esto es: no necesita ningún conocimiento matemático para comprender el cálculo lambda. Pero necesita una mentalidad matemática relativamente profunda (también conocida como forma de pensar , que no tiene nada que ver con el conocimiento) para poder comprender / apreciar las ramificaciones de los conceptos muy simples que forman la base del cálculo lambda.

En principio … ninguno. [math] \ lambda [/ math] -calculus parte esencialmente de nada más que sustitución y construye todo a partir de ahí. Sin embargo, necesita un nivel relativamente alto de capacidad de abstracción para sacarle mucho provecho.

Siempre me ha gustado Henk Barendregt sobre este tema, por lo que podría comenzar con su (escrito con Erik Barendsen) Introducción al cálculo Lambda [1] … solo tiene 53 páginas.
[1] Página en chalmers.se

Solo la capacidad de abstracción también se requiere para el álgebra abstracta (teoría de grupos). Poco más pienso, para captar el concepto principal.

More Interesting

Intuitivamente, ¿qué es una función computable?

¿Cómo decimos que un lenguaje no bombeable no es regular?

¿Puede la ciencia / psicología cognitiva ayudarlo a comprender otras áreas más rápidamente, como las matemáticas, la física y la informática?

Cómo mejorar mi habilidad de programación en los temas de matemática y geometría

¿Qué es una tabla V o una tabla virtual en C ++?

Cómo formular un programa entero donde todos estén representados en un horario

¿Qué es un algoritmo eficiente para encontrar los primeros cinco números primos de diez dígitos?

¿Qué es la combinatoria en matemáticas discretas?

¿Por qué utilizamos el kit de microprocesador 8085 para agregar dos números hexadecimales en lugar de un simple proceso de suma?

¿Cuál es el problema más interesante que ha encontrado y que utiliza la recursividad?

Si el Universo se restableciera al estado en el que acaba de comenzar, ¿podría el mundo ser diferente después de exactamente la misma cantidad de tiempo que la edad del Universo ahora? ¿O sería exactamente lo mismo?

Trabajo como desarrollador de software para una startup. Si sé que nuestro producto es falso, ¿debería cambiarme a otro trabajo?

¿Qué libros de algoritmos y estructuras de datos tratan bien la recursividad?

¿Cómo puedo calcular la varianza para el número de aciertos de caché?

Si g (x) es una función unidireccional débil, ¿es f (x) = x (exclusivo o) g (x) una función unidireccional? Si es así, ¿puede ser fuerte?