2016-11-15 2 views
0

Eta Abstraction dans le calcul de lambda signifie suivre.Eta abstraction dans le lambda calcul

A function `f` can be written as `\x -> f x` 

est l'abstraction Eta de toute utilisation tout en réduisant les expressions lambda? Est-ce seulement une manière alternative d'écrire certaines expressions?

+0

En fonction de votre stratégie d'évaluation, la conversion de eta peut être un moyen utile pour retarder l'évaluation – naomik

+0

Merci, pouvez-vous me pointer vers un lien ou un exemple où il y a des cas d'utilisation de l'abstraction eta. – user634615

+0

Sous une évaluation stricte, eta abstraction pourrait être utilisé pour implémenter le fameux combinateur Y. Y: = U (λh. Λf. F (λx. H h f x)) 'où' U: = λf. f f' - sans abstraction 'x' eta ici, un évaluateur strict irait dans une boucle infinie. – naomik

Répondre

0

La réduction eta/expansion est juste une conséquence de la loi qui dit que, compte tenu

f = g 

il doit être, que pour tout x

f x = g x 

et vice versa.

Par conséquent donné:

f x = (\y -> f y) x 

nous obtenons, en réduisant la bêta côté droit

f x = f x 

qui doit être vrai. Nous pouvons donc conclure

f = \y -> f y