lambda 表达式的值和结合性
Values of lambda expressions and associativity
谁能告诉我这些 lambda 表达式在替换 x=5
时的结果是什么?
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
第一个表达式:
(λ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
希望对您有所帮助。
谁能告诉我这些 lambda 表达式在替换 x=5
时的结果是什么?
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
第一个表达式:
(λ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
希望对您有所帮助。