Tengo lo que llamaría una pregunta filosófica sobre el cálculo λ.
Cuando explore el cálculo λ, se sorprenderá al ver todas las cosas que puede hacer allí. Puede definir enteros, operaciones aritméticas, booleanos, sentencias if-then-else, bucles, funciones recursivas, etc. Creo que se ha demostrado que es computacionalmente completo.
Pero, por otro lado, si considera lo que puede hacer con las funciones en el cálculo λ, se da cuenta de que lo único que puede hacer es alimentar una función y le devuelve otra función. Y ese proceso nunca termina.
Entonces, ¿cómo puede extraer un resultado de un cálculo?
Supongamos que el resultado de una expresión es función f
. Desea verificar si f
es lo que esperaba. Puede probarlo, tomar una función que conozca, solicitarla f
y recibirla g
. Pero para verificar g
es correcto, ahora necesita verificar lo que g
hace. Y comienzas de nuevo. Entonces, ¿cómo puedes contar algo f
?
Me parece que puede reemplazar todas las funciones en cálculo λ por una sola función, la función de identidad I = λx.x
, y todo sigue funcionando como se describe en cálculo λ. El número de la Iglesia 3
cuando se da f
y x
regresa f(f(f(x)))
. Pero desde f
y x
solo puede ser I
, vuelve I
. I
aplicado I
y I
también regresa I
. Entonces I
satisface la definición de 3
. Los "booleanos" (λxy.x)
y (λxy.y)
necesitan 2 argumentos, que serán I
y I
entonces ambos booleanos volverán I
. Cada uno es equivalente a la identidad, a pesar de que se comportan exactamente de acuerdo con sus definiciones.
Entonces, ¿cómo haces la diferencia? ¿Cómo muestra que el cálculo λ trata con algo más que una sola función?
¿Existe un concepto de identidad? ¿Puedes identificar una función inmediatamente sin evaluarla? Creo que se demostró que no hay forma de probar 2 funciones para la igualdad.
¿O el cálculo λ no se trata de funciones, sino de la descripción formal de lo que hacen? Eso significaría que las expresiones λ no solo definen lo que hacen las funciones sino que también son los datos que las funciones manipulan. Así que cuando se escribe A B
, que no se aplican A
a B
, pero se aplica la función descrita por la cadena A
de definición formal de una función contenida en B
volver otra definición formal.
¿Qué está pasando realmente en el cálculo λ? ¿Cuáles son los objetos matemáticos con los que trata?
Seguimiento:
Bien, de la respuesta a continuación parece que el cálculo λ no se trata tanto de funciones en el sentido matemático, sino del subconjunto de funciones que se pueden expresar como expresiones λ. O incluso más sobre la manipulación de las expresiones λ.