代码之家  ›  专栏  ›  技术社区  ›  Robert Gould

在函数式编程中,你会怎么称呼这种操作?

  •  3
  • Robert Gould  · 技术社区  · 16 年前

    在函数式编程中,你会怎么称呼这种操作?

    function(f,vargs){ //variable count of arguments
       return function(){
           return f(vargs)
       }
    }
    

    5 回复  |  直到 16 年前
        1
  •  4
  •   Mark Rushakoff    16 年前

    apply 是正确的术语——例如,Python有一个等效词 apply (现已弃用)。

    另见部分应用 in Haskell in Javascript 。如果部分应用程序使用 一些 根据函数的参数,可以得出以下结论 满的 应用程序或仅应用程序必须使用 就像你上面做的那样。

        2
  •  4
  •   Artelius    16 年前

    我认为这叫做函数应用程序。

    记住,在函数范式中,

    function(){
        return f(vargs)
    }
    

    作为一个没有参数的函数,它大致相当于一个包含以下结果的过程编程变量 f(vargs) .

        3
  •  2
  •   Russ Cam    16 年前

    我的理解是,currying是部分应用函数并返回一个与原始函数的签名相匹配的函数减去应用的参数的行为。

    看看这篇文章- The Art of Currying

    这看起来像是 Higher Order function

        4
  •  1
  •   cletus    16 年前

    我会称之为构建一个 closure .

        5
  •  0
  •   ȷ̇c    16 年前
    function(f, args) {
        return (
            function() { return f(vargs) }
          )
     }
    

    外部功能需要 f 参数 ,它返回的是一个匿名函数,只返回 f(args) ,在哪里 f 瓦格斯 是外部函数的参数。

    数学 例如,你可以把它写成 F[f_, args___] := f[args]& 。因为返回的匿名函数是一个常量函数(不接受任何参数),您也可以将其编写为 F[f_, args___] := f[args] ,省略最后一个 & .

    推荐文章