Je comprends qu'un chiffre d'église ressemble à (... n fois ...) . Cela ne signifie rien de plus que "la fonction appliquée fois à la fonction ". λ s . λ z . s ss n z
Une définition possible de la fonction est la suivante: . En regardant le corps, je comprends la logique derrière la fonction. Cependant, lorsque je commence à évaluer, je suis bloqué. Je vais l'illustrer avec un exemple:t i m e s = λ m . λ n . λ s . m
Maintenant, dans cette situation, si j'applique d'abord , j'arrive au résultat souhaité. Cependant, si j'applique abord, comme je le dois parce que l'application est associative de gauche, j'obtiens un mauvais résultat:( λ z . s
Je ne peux plus réduire cela. Qu'est-ce que je fais mal? Le résultat devrait être
Réponses:
Je pense que votre réduction est correcte (je ne l'ai cependant fait qu'observer). À la fin, vous ne pouvez pas appliquer à , cela n'apparaît jamais dans le terme. est , pas . Les fonctions du lambda-calcul prennent un seul argument; ils sont effectivement curry : une fonction à deux arguments est implémentée comme une fonction à un argument qui prend le premier argument et renvoie une nouvelle fonction à un argument qui prend le deuxième argument et renvoie le résultat.z λ z . f f z λ z . ( f f ) z λ z . f ( f z )( λ z. s s s z) z λ z. FFz λ z. ( fF) z λ z. F( fz)
Vous avez fait la même erreur lors de la définition des chiffres de l'Église. Le chiffre de l'Église pour est basé sur la composition d'une fonction fois. «La fonction appliquée fois à la fonction » . Ce que vous avez écrit est la fonction appliquée fois à la fonction et enfin à , ce qui ne me semble pas être un terme utile.n s n z λ s . λ z . s ( s ( … sn n s n z s n - 1 s zλ s . λ z. s ( s ( … sz) … ) ) s n - 1 s z
la source