这里跳过文字歪歪,直接来形式主义:
<expr> ::= <identifier>
<expr> ::= (λ <identifier> . <expr>)
<expr> ::= (<expr> <expr>)
lambda理论只有这三种表达式。即自由变元、定义式与应用式。
关于自由变量的统计:
第一个直接是自由变元;
第二个中非绑定的是自由变元;
第三个是简单地把应用式和被应用式中的自由变元加起来。
注意二式是计算自由变元的关键(因为1式与3式只是简单的算术)。
且如果不用括号的话,λ是右结合(贪婪的),应用式则是左结合的。
单就绑定来说,1式与3式都不具有产生绑定的能力。只有2式具有产生绑定的能力。另外,只有1式与2式拥有产生自由变量的能力。
换句话说,3式也不产生绑定也不产生自由变量。
α-变换
λ V. E == λ W. E[V/W]
要求:W不是E中的自由出现且不会在E中被绑定。被换掉的是V的自由出现不是绑定出现。
β-消解
((λ V. E ) E' ) == E [V/E' ]
要求:所有E'中的自由变量在消解后仍然自由。