为什么我们在达到这个期限后就停止了? λ微积分

Why do we stop after reaching this term? Lambda Calculus

我正在计算 lambda 项的范式。我也有解决方案,所以我知道 "end" 之前我的步骤是正确的。 给定的术语是

(\a.\b.(\x.a b x)(\y. b y x) a) (\f. f f)g

其范式是

    g g (\y. g y x)(\f. f f)

我也得到了这个,但后来我继续了,我不明白为什么这是最后一个学期。我继续

g g g (\f. f f) x

然后

g g g x x

但显然我走得太远了,你知道为什么你应该早点停下来吗?

不是早点停的问题。您误解了 lambda 演算的语法。

按照惯例,当我们写A B C时,我们指的是(A B) C,而不是A (B C);即 function application is left associative.

因此

g g (\y. g y x)(\f. f f)

解析为

((g g) (\y. (g y) x)) (\f. f f)

特别是,(g g) 应用于 (\y. g y x),而 (\y. g y x) 应用于 (\f. f f)