【问题标题】:What exactly are First Class Functions? [duplicate]一等函数究竟是什么? [复制]
【发布时间】:2023-03-17 02:19:01
【问题描述】:

我搜索了网络以尝试理解这个术语。我了解“一流函数”是可以分配给变量并“传递”的函数。但我真的不明白这是什么意思。

那是什么意思?一等函数到底是什么?

欢迎提供示例。

【问题讨论】:

  • @SteveBennett 在问这个问题之前,我查看了您在此处链接的内容,老实说不太明白。它说Java只有一种具有一流的功能。如果是这样,那么在 Java 中是什么:a = someFunction()。我不明白。
  • 好的,this 将解释 Java 中的函数指针/第一类函数是什么。如果您通常不知道函数指针是什么,这里是非常好的blog post,它准确地解释了这一点。这应该会有所启发。
  • @SteveBennett 谢谢,我会检查一下

标签: function first-class-functions


【解决方案1】:

第一类函数基本上意味着函数作为一种数据类型,就像字符串、数组或数字一样。所以在 Javascript 中,函数就是数据。

你应该看看:

What is a first class citizen function?

因此您可以将函数作为另一个函数的参数传递:

function map(array,fun){
    var result = [];
    for(var i=0;i<array.length;i++){
       result.push(fun(array[i]));
    }
    return result;
}

map([1,2,3],function(a){return a+1;});   //yields [2,3,4]

这里我们有一个函数,它遍历一个数组并在数组的每个元素上返回一个应用程序的结果(作为参数传递)。所以应用程序的乐趣是一个变量,因此是数据。

如果你与 Java 相比,你不能在 java 中做到这一点(最多 7 个)而不编写类,因此函数不是 java

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-26
    • 2012-03-18
    • 2012-04-30
    • 2014-11-01
    • 2017-01-12
    • 1970-01-01
    • 2014-08-23
    相关资源
    最近更新 更多