我正在计算lambda Term的正常形式。我也有解决方案所以我知道我的步骤直到"结束"是的。 给定的术语是
(\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
但显然我走得太远了,你知道为什么你应该早点停下来吗?
答案 0 :(得分:4)
这不是提前停止的问题。你错误地解释了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)
。