徽标
联盟百科
通讯
下载应用,请到 Google Play
新! 在您的Android™设备上下载联盟百科!
自由
比浏览器更快的访问!
 

函数对象和闭包 (计算机科学)

快捷方式: 差异相似杰卡德相似系数参考

函数对象和闭包 (计算机科学)之间的区别

函数对象 vs. 闭包 (计算机科学)

函数对象(function object)是一个程序设计的对象允许被当作普通函数来调用。 函数对象与函数指针相比,有两个优点:第一是编译器可以内联执行函数对象的调用;第二是函数对象内部可以保持状态。 函数式程序设计语言还支持闭包,例如,first-class函数支持在其创建时用到的函数外定义的变量的值保持下来,成为一个函数闭包。. 在计算机科学中,闭包(Closure),又稱词法闭包(Lexical Closure)或函數閉包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不同的引用环境和相同的函数组合可以产生不同的实例。 闭包的概念出现于60年代,最早实现闭包的程序语言是Scheme。之后,闭包被广泛使用于函数式编程语言如ML语言和LISP。很多命令式程序语言也开始支持闭包。 在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。其中所引用的变量称作上值(upvalue)。 闭包一词经常和匿名函数混淆。这可能是因为两者经常同时使用,但是它们是不同的概念。.

之间函数对象和闭包 (计算机科学)相似

函数对象和闭包 (计算机科学)有1共同点(的联盟百科): 函數程式語言

函數程式語言

函數式編程(functional programming)或称函数程序设计,又稱泛函編程,是一種編程典範,它將電腦運算視為數學上的函數計算,並且避免使用程序状态以及易变物件。函數程式語言最重要的基礎是λ演算(lambda calculus)。而且λ演算的函數可以接受函數當作輸入(引數)和輸出(傳出值)。 比起指令式編程,函數式編程更加強調程序执行的结果而非执行的过程,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算,而不是设计一个复杂的执行过程。.

函数对象和函數程式語言 · 函數程式語言和闭包 (计算机科学) · 查看更多 »

上面的列表回答下列问题

函数对象和闭包 (计算机科学)之间的比较

函数对象有5个关系,而闭包 (计算机科学)有30个。由于它们的共同之处1,杰卡德指数为2.86% = 1 / (5 + 30)。

参考

本文介绍函数对象和闭包 (计算机科学)之间的关系。要访问该信息提取每篇文章,请访问:

嘿!我们在Facebook上吧! »