Voici une illustration de l'évaluation
beta reduction 1
(λx.xx) (λx.λy.x x) →β x [x := (λx.λy.x x)]
(λx.(λx.λy.x x)(λx.λy.x x))
beta reduction 2
(λx.λy.xx) (λx.λy.x x) →β x [x := (λx.λy.x x)]
(λx.λy.(λx.λy.x x)(λx.λy.x x))
result
λy.(λx.λy.x x) (λx.λy.x x)
Maintenant, nous avons atteint faible Tête normale Forme - à savoir, nous avons un lambda λy
sans aucun argument à appliquer à.
Pour se rendre à la tête normale forme, nous pouvons essayer de réduire sous lambda ...
reduction 1
λy.(λx.λy.xx) (λx.λy.x x) →β x [x := (λx.λy.x x)]
λy.(λx.λy.(λx.λy.x x)(λx.λy.x x))
reduction 2 ...
λy.λy.(λx.λy.x x) (λx.λy.x x)
Ok, on voit tout de suite que ce modèle se répète. Chaque fois que nous essayons de réduire sous le lambda, le résultat est enveloppé dans un autre λy
. Ainsi, cette expression lambda particulière n'a pas de forme normale de tête - c'est-à-dire que l'évaluation de cette expression (lorsqu'elle est appliquée à un argument) ne se terminera jamais; il n'atteindra jamais la forme normale.
Merci pour la bonne explication –