例如,当人们说Python具有一流的功能时,听起来就像Python也具有一流的功能。但是,我从来没有(知道)在Python中遇到过第二类函数。当我们这么说的时候,这真的意味着“所有Python函数都是一流的吗?”还是有Python中的第二类函数的示例?

最佳答案

首先,要澄清术语。

术语“一流的功能”是指它在类型系统中是“一流的”:也就是说,功能本身就是值。在函数不是第一类的语言中,函数被定义为值之间的关系,这使它们成为“第二类”。

换句话说,“一流”函数意味着您可以将函数用作值,这意味着(除其他事项外)您可以将函数传递给函数。在Java 7之前,您无法在Java中执行此操作(不计算反射),因此,这是仅具有“第二类”功能的编程语言的示例。为了“传递一个函数”,您必须定义一个该函数可以存在的类型(作为一种方法),然后传递该类型的实例。

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

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

关于python-3.x - 一流功能的词汇,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47357097/

10-08 23:34