我试图理解lambda演算。但是,我有点卡在这个表达式上:TRUE和TRUE。我无法弄清楚你是如何从
获得的((\T F -> T) (\T F -> T))
到
(\F T F -> T)
,而不是
(\F -> (\T F -> T))
\是lambda-signature
答案 0 :(得分:2)
(\F T F -> T)
和
(\F -> (\T F -> T))
是一回事。
https://en.wikipedia.org/wiki/Lambda_calculus_definition#Notation:
- 最外面的括号被删除:
M N
而不是(M N)
- [...]
- 抽象主体尽可能向右延伸:
λx. M N
表示λx. (M N)
而非(λx. M) N
- 签订了一系列抽象:
λx. λy. λz. N
缩写为λxyz. N
特别是
(\F -> (\T F -> T))
可以写
(\F -> \T F -> T)
因为我们可以删除多余的括号,并且外部lambda的主体尽可能向右延伸,然后可以写入
(\F -> \T -> \F -> T)
或
(\F T F -> T)
最后一条规则(收缩)。