1
我发现迈克戈登的功能性编程介绍Notes在网络上,我试图通过它。第9页有这样的疑问:Lambda微积分免费可变问题
Find an example to show that if V1 = V2 , then even if V2 is not free in E1,
it is not necessarily the case that:
(λ V1 V2 . E) E1 E2 = E [E1/V1][E2/V2]
我猜,我可以说,因为V1和V2是平等的,我们可以这样重做:
(λ V2 V1 . E) E1 E2
,因此说
(λ V1 . E[E1/V2]) E2
给出了V2在E1中不空闲的规定。但是,我们不能说
E[E1/V2][E2/V1]
因为E2必然有V1免费。或者我错过了什么?
似乎在说'(v1 v1 v2。E)E1 E2 = E [E1/V1] [E2/V2]'其中'v1'和'v2'是不同的,就像是说例如'λv1。 (λv2。v1)E1 E2',它可以测试到'(λv2。E1)E2',这将只是'E1'。但是如果我们试图用'v1 = v2'来表示原始的redex或者只是'v',使用我们的例子:'λv。 (λv。v)E1 E2'这将是beta到E2,这是一个矛盾。因此,(一般情况下)你不能使用alpha'λv1 v2。 E'到'λv v。 E'。 – user2054900 2013-03-25 04:09:41