如何用 lambda 项表示以下函数?
如果 n != 0,则 f(n) = T。如果 n = 0,则为 F。
n 代表教堂数字。
我知道 0 := λf.λx.x 其中 λx.x 是恒等函数,所有其他自然数可以用 n := λf.λx.f (f ... (fx)) 表示,其中包含 fn 倍比 0 项。例如 3 := λf.λx.f (f (fx))。
但是我怎样才能为上面的函数推导出一个有效的 λ 项呢?我想我也需要获得 T/F。因此我可以用 λf.(λxy.fxy) 来表示数字 n,对吧?但是F和T呢?以下是上述函数的正确 λ 项吗?λf.(λxy.fxy(yFT)) 其中 T=λxy.x 且 F=λxy.y?