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

在一个函数式编程中,你会把这种操作称为什么?

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

    在一个函数式编程中,你会把这种操作称为什么?

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

    我认为这是在逃避,但我的印象是,逃避是一个术语,当我们绑定一个论点而不是几个论点时。或者这是一个延迟,不太确定…

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

    apply 是正确的术语——例如,python有一个等价的 apply (现在已弃用)。

    另见部分应用 in Haskell in Javascript .如果部分应用程序使用 一些 函数的参数,然后它会如下 满的 应用程序,或只是应用程序,必须使用 全部的 就像你在上面做的那样。

        2
  •  4
  •   Artelius    15 年前

    我觉得这叫做函数应用。

    记住,在功能范式中,

    function(){
        return f(vargs)
    }
    

    作为一个没有参数的函数,大致相当于一个包含 f(vargs) .

        3
  •  2
  •   Russ Cam    15 年前

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

    看看这篇文章- The Art of Currying

    这看起来像 Higher Order function

        4
  •  1
  •   cletus    15 年前

    我会打电话给正在建设一个 closure .

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

    外部功能需要 F 阿尔茨海默病 ,它返回的是一个只返回 f(args) 在哪里 F 瓦格斯 是外部函数的参数。

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