【发布时间】:2020-09-09 21:39:01
【问题描述】:
我知道 XOR= (a)((b)(false)(true))(b) 但是我怎样才能减少 [xor true true ] 并从这个表达式中得到错误的结果?
【问题讨论】:
标签: lambda-calculus
我知道 XOR= (a)((b)(false)(true))(b) 但是我怎样才能减少 [xor true true ] 并从这个表达式中得到错误的结果?
【问题讨论】:
标签: lambda-calculus
您忘记了 XOR 定义前面的 λ。此外,您必须将 true 和 false 定义为标准 Church 布尔值:
true = λab.a
false = λab.b
XOR = λab.a(b false true)b
然后
XOR true true
--> (λab.a(b false true)b) true true
--> true (true false true) true
--> true false true
--> false
【讨论】: