我需要使用Normal Order将以下Lambda表达式简化为Normal Form。这些是我的减免,但对我而言没有意义:
//First expression
(λf.λx.f(fx))(λy.+y1)(+ 2 3)
(λx.fx)(λy.+y1)(+ 2 3)
f(λy.+y1)(+ 2 3)
f(+(+ 2 3) 1)
f(+ 5 1)
f 6
//Second expression
λx. + ((λy.((λx.∗ xy) 2)) x) y)
+((λy.((λw.* wy) 2) w)
+((λw.* ww) 2)
+(* 2 2)
+ 4
我都没有NF。第二个是+函数,它需要2个变量,但最后只有一个。
如果有任何建议和更正,我将不胜感激。
答案 0 :(得分:0)
1。
//First expression
(λf.λx.f(fx))(λy.+y1)(+ 2 3)
我认为您在这里的错误是在考虑可以减少第一项。我认为这不可能,因此请立即将其应用于其他术语。
2。
//Second expression
λx. (+ ((λy.((λx.∗ xy) 2)) x) y)
通过应用最里面的术语并重命名最后一个y
来减少这种情况,您将获得:
λx. (+ ((λy.(∗ 2y)) x) w)
然后继续:)