J'ai une expression lambda: λx.λy.x(xy)
, et je suis supposé inférer la représentation entière de celui-ci. J'ai beaucoup lu sur les encodages de l'église et les chiffres de l'église, mais je ne peux pas trouver le nombre. Pouvez-vous m'expliquer comment un enfant de 3 ans peut comprendre ou me référer à une ressource mieux que wikipedia?ne peut pas déduire la représentation numérique (codage d'église) d'une expression lambda λx.λy.x (xy)
2
A
Répondre
1
Eglise encodage des entiers est le suivant:
"0" ≡ (λf.(λx.x))
: Pensez(λf.(λx.x))
en ce sens: étant donné une fonctionf
et un élémentx
, le résultat estx
: il est comme l'application de la fonctionf
zéro fois àx
."1" ≡ (λf.(λx.(fx)))
: Pensez(λf.(λx.(fx)))
en ce sens: étant donné une fonctionf
et un élémentx
, le résultat est(fx)
: ce qui devrait être considéré comme appliquerf
-x
ou, en notation mathématique plus standard, comme f (x) ."2" ≡ (λf.(λx.(f(fx))))
: Pensez(λf.(λx.(f(fx))))
en ce sens: étant donné une fonctionf
et un élémentx
, le résultat est(f(fx))
: ce qui devrait être considéré comme appliquerf
-x
deux fois ou, en notation mathématique plus standard, comme f (f (x))."3" ≡ (λf.(λx.(f(f(fx)))))
: Pensez(λf.(λx.(f(f(fx)))))
en ce sens: étant donné une fonctionf
et un élémentx
, le résultat est(f(f(fx)))
: ce qui devrait être considéré comme appliquerf
àx
trois fois ou, en notation mathématique plus standard, comme f (f (f (x))).
J'espère que vous voyez le motif (et la logique derrière). Dans votre cas, (λx.(λy.(x(xy))))
est l'encodage de l'église du nombre 2
(en utilisant l'alpha-équivalence, bien sûr). Le wikiped article est en fait assez clair. Qu'est-ce que tu ne comprends pas?