第一类对象原则
- a 属于 Λ 空间
- 对于任何 M 属于 Λ 空间,且 a 属于 Λ 空间,则 λ a. M 属于 Λ 空间
- 对于 F、M 属于 Λ 空间,则 F M 属于 Λ 空间
使用 λ 表达式来描述即:
λ` 属于 Λ 空间
λ λ`. λ`
λ` λ`
这是一个递归定义,也就是说任何一条 lambda 表达式的参数以及返回值都可以是 lambda 表达式(该 lambda 表达式的参数以及返回值的 lambda 表达式的参数以及返回值也能是 lambda 表达式)。
由此我们可以定义 lambda 表达式版的 bool 值及其算子:
T = λ x y. x
F = λ x y. y
AND = λ x y. x y F
OR = λ x y. x T y
NOT = λ x. x F T