Pregunta

Estoy tratando de comprender los conceptos básicos de cálculo lambda y la Iglesia números.He estado haciendo un montón de leer y practicar, pero me parece mantener pegado tratando de ver cómo algunas de las funciones de trabajo.

El ejemplo que estoy atascado en es como sigue.Tal vez alguien puede explicar de dónde he salido mal.

La Iglesia numeral 1 se puede representar como:

λf. λx. f x

La exponenciación de la función de la Iglesia de números (mn) puede ser dada como:

λm. λn. n m

Todo lo que quiero hacer es mostrar que mediante la aplicación de la exponenciación de la función 1 y 1, devuelvo 1, desde el 1 de1 = 1.Yo estoy haciendo esto, así que puedo entender mejor cómo estas funciones de trabajo.Mi trabajo es la siguiente y me quedo pegado cada vez que:

// Exp (1 1)
(λm. λn. n m) (λf1. λx1. f1 x1) (λf2. λx2. f2 x2)
// Substitute for m
(λn. n (λf1. λx1. f1 x1)) (λf2. λx2. f2 x2)
// Substitute for n
(λf2. λx2. f2 x2) (λf1. λx1. f1 x1)
// Substitute for f2
(λx2. (λf1. λx1. f1 x1) x2)
// Substitute for f1
λx2. (λx1. x2 x1)

Y no estoy atascado.He perdido tanto f's, a la izquierda con x's solo, y no tengo la 1 de la espalda.A donde voy mal?

¿Fue útil?

Solución

A donde voy mal?

En ninguna parte!Estás hecho.Recuerde que los nombres de las variables no son importantes;es la estructura que es importante.Los nombres f o x2 no son significativas.Es sólo cuestión de cómo se utilizan.La Iglesia numeral 1 es

λf. λx. f x

y usted tiene

λx2. (λx1. x2 x1)

Cambiar el nombre de x2 a f y x1 a x y voilà!Usted tiene

λf. (λx. f x)
= λf. λx. f x
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top