TODO: 有待进一步解释
在实现语言时,我们必须确定变量的出现是如何被表示的。本书将使用一种针对变量的canonical表示。
6.1 Terms and Contexts
让变量的出现位置直接与它们的binders联系在一起,例如lambda x.x -> lambda .0; lambda x. lambda y. x ( y x ) -> lambda . lambda . 1 (0 1).
Tn中的元素是至多有n个free变量的terms。这里解释一下下面的情况:这里对于x (y z) 来说因为都是自由变量,所以可以直接编码。而对于lambda w. y w 来说,因为有一个lambda,这意味着我们需要将自然变量的编号进行偏移,这里直接将y对应的编号偏移为4=3+1.
6.2 Shifting and Substitution