我想评估以下表达式:
(λx.y)((λz.zz)(λw.w))
使用β减少。
答案是:
(λx.y)((λz.zz)(λw.w)) ->
(λx.y)((λw.w)(λw.w)) ->
(λx.y)(λw.w) -> y
但我不明白第二阶段:
从这里开始:(λx.y)((λz.zz)(λw.w))
到这里(λx.y)((λw.w)(λw.w))
我们在那做什么?根据我的理解,我需要使用α-equivalence 规则。
答案 0 :(得分:3)
β减少允许项(λx.t)s减小到t [x:= s]。在你的问题步骤中,x是z,t是zz,s是λw.w.所以这里t [x:= s]是zz [z:=λw.w],即(λw.w)(λw.w)。
答案 1 :(得分:3)
您建议的减少量是按值减少。
(λx.y) z -> y[x/z] IF z is a value.
您可以使用名称缩减
直接缩减为y (λx.y) z -> y[x/z].
回答你的问题:
(λx.y)((λz.zz)(λw.w)) -> (λx.y)((λw.w)(λw.w))
因为
( (λz.zz)(λw.w) ) is not a value (as (λx.y)z is never a value.)
因为
(zz)[z/(λw.w)] i.e.substitute every occurence of z with (λw.w) leads to
(λw.w)(λw.w)