Lambda运算

这篇博客深入介绍了Lambda运算的概念,包括lambda abstraction、自由变量与受限变量、重命名、α等式、β-缩写等核心概念,并通过实例展示了如何用Lambda运算实现递归函数、布尔类型、自然数、链表、树等数据结构的操作。同时,讨论了简单类型和粗糙类型的定义。
摘要由CSDN通过智能技术生成

lambda abstraction(lambda abstraction)

在lambda运算中,函数的表达式与平常的不同:

f(x)=M,应该表示成λx.M(带函数名的写法为,f≡λx.M)的形式,这样左到目的是为了省略函数的名称,从而更加简洁

lambda abstraction中点号的后面包括到最右边的部分,例如,λx.MN等同于λx.(MN),而不是(λx.M)N

多维的lambda abstraction的表达式可以缩写,例如,λxyz.M等同于λx.λy.λz.M

自由变量和受限变量

变量x在lambda abstraction中λx.N中被称作是受限变量,其中λx被称作binder,而N被称为binder的受限范围。

不是受限变量的变量就是自由变量

在表达式M中出现的自由变量记作FV(M),并且有下面几条性质:

  • FV(x) = {x}
  • FV(MN) = FV(M)∪FV(N)
  • FV(λx.M) = FV(M)\{x}

重命名

将表达式M中的变量x重命名为y的时候写作M{y/x}

重命名有以下几条运算性质

x{y/x} ≡ y

z{y/x} ≡ z, if x ≠ z

(MN){y/x} ≡ (M{y/x})(N{y/x})

(λx.M){y/x} ≡ λy.(M{y/x})

(λz.M){y/x} ≡ λz.(M{y/x}), if x ≠ z

α等式

α等式是一种逻辑推理方式,书写的形式类似于分式,横线的上方是推理的条件(如果横线的上方没有语句,则意味着不需要任何条件,横线下方的表达式成立),下方是推理的结论,如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值