一流函数的词汇

Add*_*dem 3 first-class-functions python-3.x

例如,当人们说Python具有第一类函数时,它就像Python一样具有二级函数.但是,我从来没有(明知)在Python中遇到过第二个类函数.当我们这样说时,它真的意味着"所有Python函数都是一流的吗?" 或者是否有Python中的第二类函数的示例?

Rob*_*her 6

首先,澄清命名法.

术语"第一类函数"意味着它在类型系统中是"第一类":也就是说,函数本身就是值.在函数不是第一类的语言中,函数被定义为值之间的关系,这使它们成为"第二类".

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

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

现在,您可能会对另一个概念感到困惑.还有一个"高阶函数"的概念.高阶函数是将函数作为参数的函数.并非Pythons中的所有函数都是高阶函数,因为并非所有函数都将另一个函数作为参数.但即使是不是高阶的函数也是一流的.(这是方形/矩形的东西.)