Closure

2012-08-26
 

     Peter J. Landin 在1964年将术语 闭包 定义为一种包含 环境成分 和 控制成分的实体。    闭包 这一术语,用来指代某些其开放绑定(自由变量)已经由其语法环境完成闭合(或者绑定)的 lambda 表达式,从而形成了 闭合的表达式,或称闭包。在没有闭包的语言中,变量的生命周期只限于创建它的环境。但在有闭包的语言中,只要有一个闭包引用了这个变量,它就会一直存在。清理不被任何函数引用的变量的工作通常由垃圾回收完成。 作用: 闭包可以用来实现对象系统。 多个函数可以使用一个相同的环境,这使得它们可以通过改变那个环境相互交流。比如在Scheme中。 因为闭包只有在被调用时才执行操作,所以它可以被用来定义控制结构 昨天看SICP,在页脚处读到:“闭包”来自抽象代数,一集元素称为在某个运算(操作)之下封闭,如果将该运算应用于这一集合中的元素,产生的仍是该集合里的元素。此与Lisp社团用“闭包”描述的概念:闭包也是一种为表示带有自由变量的过程而用的实现技术 ,完全不同。SICP采用第一种意义。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值