Functional programming 在函数式编程中,这种操作叫什么?

Functional programming 在函数式编程中,这种操作叫什么?,functional-programming,Functional Programming,在函数式编程中,这种操作叫什么 function(f,vargs){ //variable count of arguments return function(){ return f(vargs) } } 我认为这是Curry,但我的印象是Curry是一个术语,当我们绑定一个参数而不是多个参数时。或者这可能是一个延迟,不太确定…我会调用正在构造的。我认为它被称为函数应用程序 记住,在功能范式中 function(){ return f(vargs) } 作

在函数式编程中,这种操作叫什么

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

我认为这是Curry,但我的印象是Curry是一个术语,当我们绑定一个参数而不是多个参数时。或者这可能是一个延迟,不太确定…

我会调用正在构造的。

我认为它被称为函数应用程序

记住,在功能范式中

function(){
    return f(vargs)
}

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

结果的过程编程变量。我的理解是,curry是部分应用函数并返回一个与原始函数的签名减去应用参数相匹配的函数的行为

看看这篇文章——


这看起来像是一个

应用
是正确的术语——例如,Python有一个等价物(现在已弃用)

另请参见部分应用程序或。如果部分应用程序使用了函数的一些参数,那么整个应用程序,或者只是应用程序,必须使用所有参数,就像上面所做的那样

function(f, args) {
    return (
        function() { return f(vargs) }
      )
 }
外部函数接受f和args,它返回的是一个匿名函数,只返回
f(args)
,其中f和varg是外部函数的参数


例如,在Mathematica中,您可以将其写成
F[F,args\uu]:=F[args]&
。因为返回的匿名函数是一个常量函数(不接受任何参数),所以您也可以将其编写为
F[F,args\uu]:=F[args]
,省略最后一个
&

@pavium,是的,乍一看可能有点混乱,但这不是混淆:)是的,我是在讽刺。是的,我不确定一次是否只有一个参数。我不认为它必须是一个参数才能成为一个curry函数,只是不是所有参数:)你知道Mathematica中用于这类事情的名称吗?据我所知,整个操作没有标准名称,它以f和args为参数,并返回一个常量函数,其值是通过将f应用于args获得的。