lambda表达式和关联性的值

时间:2016-03-26 13:48:08

标签: lambda lambda-calculus

有人可以告诉我在替换x=5

时这些lambda表达式的结果是什么
a) λx. ((λx.x+1) x)

b) (λx. (λx.x+1)) x

这就是我的想法。

a)λx。 (λx.x+ 1)x)5 =(λx.x+ 1)5 = 6

b)(λx。(λx.x+ 1))x 5 =(λx.x+ 1)x 5 =(λx.x+ 1)5 = 6

1 个答案:

答案 0 :(得分:0)

第一个表达:

  (λx. (λx. x + 1) x) 5
= (λx. (λy. y + 1) x) 5 -- alpha renaming
=      (λy. y + 1) 5    -- beta reduction
=           5 + 1       -- beta reduction
=           6

第二个表达:

  ((λx. λx. x + 1) x) 5
= ((λx. λy. y + 1) z) 5 -- alpha renaming (z is a free variable)
= (     λy. y + 1   ) 5 -- beta reduction (z disappears because x is never used)
=           5 + 1       -- beta reduction
=           6

希望有所帮助。