首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >第一类函数的词汇

第一类函数的词汇
EN

Stack Overflow用户
提问于 2017-11-17 18:32:16
回答 2查看 208关注 0票数 3

例如,当人们说Python有第一类函数时,它听起来就像Python也有二等函数。但是,在Python中,我还从来没有(故意)遇到过第二类函数。当我们这么说的时候,它真的意味着“所有Python函数都是第一类的吗?”或者在Python中有第二类函数的例子吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-17 18:41:05

首先,澄清术语。

“第一类函数”一词意味着它是类型系统中的“第一类”:也就是说,函数本身就是值。在函数不是第一类的语言中,函数被定义为值之间的关系,从而使它们成为“第二类”。

换句话说,“第一类”函数意味着您可以使用函数作为值,这意味着(除其他外)您可以将函数传递到函数中。在Java 7之前,您无法在Java中做到这一点(反射不算在内),所以这是编程语言只具有“第二类”函数的一个例子。为了“传递函数”,您必须定义该函数可以存在的类型(作为方法),然后传递该类型的实例。

因此,在Python中,所有函数都是第一类函数,因为所有函数都可以用作值。

现在,还有另一个你可能会被混淆的概念。还有一个“高阶函数”的概念。高阶函数是以函数为参数的函数。不是所有的函数都是高阶的,因为并非所有函数都以另一个函数作为参数。但是即使不是高阶的函数也是一流的。(这是一个方形/长方形的东西。)

票数 6
EN

Stack Overflow用户

发布于 2017-11-17 18:37:05

通常,当我们说“语言X有一流的函数”时,我们实际上指的是“语言X将函数视为头等函数”(就像对其他类型的函数一样)。这通常意味着您可以将函数作为参数传递,并将它们存储在数组中,等等。

我看不出为什么一种特定的语言(将函数视为一流的)也会有二等函数(即那些不能作为参数传递的函数),但不能说Python是否有。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47357097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档