lamda运算学习笔记

lamda运算学习笔记lamda->Llamda演算至少从表面上看,有着这样一种企图:将所有运算操作,以及自然数都抽象成“函数”(再一次见识到函数这个概念的伟大)。下面简单的介绍下lamda演算。lamda演算的原始定义看起来比较无聊:(Lx.[fx])a=fa上式用熟悉的概念翻译,就是自变量为x的函数f(x),代入x=a,得f(a)但是这里有

大家好,又见面了,我是你们的朋友全栈君。

lamda -> L

lamda演算至少从表面上看,有着这样一种企图:
将所有运算操作,以及自然数都抽象成“函数”(再一次见识到函数这个概念的伟大)。下面简单的介绍下lamda演算

lamda演算的原始定义看起来比较无聊:

(Lx. [fx]) a = fa

上式用熟悉的概念翻译,就是自变量为x的函数f(x),代入x=a,得f(a)

但是这里有一个扩展:不仅f本身是函数,而且x和a也是函数!而且f也可以作为自变量,即

(Lf. [fx]) g = gx

至此,可以看出,“L”后面至“.”前面的符号其实就是自变量

接下来我们可以看看如何用这种定义表示自然数:

考虑复合函数的表示:

(Lf. [f(fx)]) g = g(gx)

如果做的更彻底一些,把x也当做自变量(没错,这就是二元函数的表示):

Lf. [Lx. [f(fx)]]

将上式缩写为

Lfx. [f(fx)]

并且将“2”的“函数”表达形式,定义为:

2 = Lfx. [f(fx)] (此时,”2″是一个函数而不仅仅是一个数字)

于是,我们有这么一个结论:2重复合函数表示“2”

类似地,我们得到其他自然数的定义:

3 = Lfx. [f(f(fx))]

4 = Lfx. [f(f(f(fx)))]

1 = Lfx. [fx]

0 = Lfx. [x]

… …

接下来,lamda演算的神奇之处在此展开:

考虑函数S = Labc. [b((ab)c)] 的用处,将3代入函数:

S 3 

= Labc. [b((ab)c)] 3

= Lbc. [b((3 b)c)] (实际上即代入a = 3)

= Lbc. [b(b(b(bc)))]

= 4

可见,S的作用就是“+1”操作

上述函数S的神奇之处在于,运用完全抽象的函数运算,取代具体的算术运算。

【写于2012年11月】


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138797.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月30日 下午8:16
下一篇 2022年5月30日 下午8:16


相关推荐

  • webstorm2021激活码【最新永久激活】

    (webstorm2021激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html…

    2022年3月28日
    4.5K
  • py文件的运行

    安装过程及配置安装过程及配置安装过程及配置安装过程准备:下载好Python的安装程序后,开始安装,在进入安装界面后一定确保勾选将Python加入到系统环境变量的路径里。如图所示:2如果没有

    2022年3月29日
    79
  • cad快速选择命令快捷键_CAD图层快捷键命令应用讲解

    cad快速选择命令快捷键_CAD图层快捷键命令应用讲解左下角阅读原文看 CAD 视频好课推荐 1 CAD2014 点击查看 2 室内 CAD 点击查看 3 CAD2019 点击查看 4 CAD2018 点击查看 5 Bim 教程 点击查看 6 室内手绘 点击查看 7 CAD 三维 点击查看 8 全屋定制 点击查看 9 pscc2019 点击查看 10 MAC 版 CAD 点击查看 11 3dmax 教程 点击查看 12 UG 教程 点击查看 13 SU 教程 点击

    2026年3月16日
    2
  • R语言画图时常见问题

    各位朋友,我已开通微信公共号:小程在线我会把文章及时的更新到公共号上,欢迎大家的关注。1如何在同一画面画出多张图?修改绘图参数,如par(mfrow=c(2,2))或par(mfcol=c(2,2));par():mar设置图离四个边缘的距离;bg设置背景颜色;xaxt和yaxt设置坐标轴标签的类型(=”n”表示不画轴标签);xlim和ylim设置坐标轴的范围…

    2022年4月7日
    33
  • MySQL培训PPT

    MySQL培训PPTnbsp nbsp nbsp 我写的 MySQL 培训 PPT 以当前 5 0GA 版本为基本 共分 12 部分 5 天的课程 从数据库原理的讲解 到 MySQL 的安装 配置 标准 SQL 的 DML DDL DCL 高级查询 数据库设计 表约束 PowerDesigne 5 的使用 三大范式 索引 视图 存储过程和函数 触发器 MySQL 权限原理及管理 数据的备份与恢复 内容丰富 详实 nbsp nbsp 具体内容如下图 nbsp nbsp nbsp nbsp 下载位置是 CSDN 的

    2026年3月17日
    2
  • break和continue的区别

    break和continue的区别1.break用break语句可以使流程跳出switch语句体,也可以用break语句在循环结构终止本层循环体,从而提前结束本层循环。使用说明:(1)只能在循环体内和switch语句体内使用break;(2)当break出现在循环体中的switch语句体内时,起作用只是跳出该switch语句体,并不能终止循环体的执行。若想强行终止循环体的执行,可以在循环体中,但并不在switch语…

    2022年6月14日
    64

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号