2

我想评估以下表达式:

(λ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))

我们在那里做什么?根据我的理解,我需要使用α-等价规则。

4

2 回答 2

3

Beta 缩减允许项 (λx.t)s 缩减为 t[x := s]。在您的问题步骤中,x 是 z,t 是 zz,s 是 λw.w。所以这里的 t[x := s] 是 zz[z := λw.w],也就是 (λw.w)(λw.w)。

于 2013-01-17T09:32:52.747 回答
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)
于 2013-01-17T20:01:21.483 回答