啥是闭包 | 您所在的位置:网站首页 › 离散数学简介是什么意思 › 啥是闭包 |
啥是闭包
我最近经常看到闭包这个概念,我发现离散数学里面有闭包,数据库里面也有闭包,写程序的时候还有闭包函数,所以闭包到底是个啥呢? 离散数学中的闭包:首先看定义: 一个关系R的闭包,是指加上最小数目的有序偶而形成的具有自反性,对称性或传递性的新的有序偶集,此集就是关系R的闭包。 闭包的定义是,包含指定集合的满足在某个运算下闭合的最小集合。 离散数学中,闭包是一个集合,什么的集合呢? 集合里面的元素是什么呢? 要讲清楚这个问题,要引入闭合的概念。 闭合指的是在一个集合上执行某种运算,得到的结果还是这个集合的元素,那么就说该集合在这个运算操作下构成闭合。 既然有闭合那就肯定有不闭合, 如果我想让他闭合怎么办呢? 我给这个集合添加若干元素,让他满足闭合的特性。 添加元素也不能乱添,我们要找出添加元素数量最少的一种情况。 这种情况下,由新加入的元素后的集合,被在这种运算下的闭包 定义是: 包含指定集合的满足在某个运算下闭合的最小集合。 编程语言中的闭包编程的时候会遇到闭包函数: 即函数定义和函数表达式位于另一个函数的函数体内。而且,这些内部函数可以访问它们所在的外部函数中声明的所有局部变量、参数和声明的其他内部函数。 说白了就是在和函数体内部定义函数 比如在python里面可以这样定义: def fun(n): a = 1 def helper(x): x += a return x b = helper(n) print(b) 数据库中闭包数据库中闭包概念: 设X是函数依赖集,被X逻辑蕴涵的函数依赖全体构成的集合,称为函数依赖集X的闭包,记为X+。 我个人理解数据库设计过程中使用的闭包概念和离散数学中的有很大关联 两者都是建立在关系、集合的基础上的 但是数据库的内容太多了,我准备整理一下另写一篇。 他们之间的联系编程中的闭包和离散数学中的闭包理论上好像没什么俩系,没有直接证据证明他们的关系。计算机语言中闭包的用法是发明者只是用了相同的词汇而已。 参考链接知乎:离散数学中的闭包和计算机语言中的闭包有联系吗? 百度百科:闭包函数 |
CopyRight 2018-2019 实验室设备网 版权所有 |