草庐IT

currying

全部标签

functional-programming - go-lang curry 怎么做?

在Haskell等函数式编程中,我可以定义函数addab=a+b然后add3将返回一个带有一个参数的函数,并将返回3+something如何在GO中做到这一点?当我定义一个带有多个(比如n个)参数的函数时,我可以只给它一个参数并获得另一个带有n-1个参数的函数吗?更新:抱歉,我最初的问题中的措辞不准确。我认为我的问题应该被问成两个问题:GO中有部分应用吗?GO如何做函数curry?感谢TheOnly92和Alex解决了我的第二个问题。不过,我对第一个问题也很好奇。 最佳答案 扩展上一个答案,它允许您采用任意数量的参数:package

c++ - 我应该如何制作功能 curry ?

在C++14中,柯里化(Currying)函数或函数对象的好方法是什么?特别是,我有一个重载函数foo有一些随机数量的重载:一些重载可以通过ADL找到,其他的可能在无数地方定义。我有一个辅助对象:staticstruct{templateautooperator()(Args&&...args)const->decltype(foo(std::forward(args)...)){return(foo(std::forward(args)...));}}call_foo;这让我可以将重载集作为单个对象传递。如果我想curryfoo,我应该怎么做?由于curry和部分函数应用程序经常可以

c++ - 我应该如何制作功能 curry ?

在C++14中,柯里化(Currying)函数或函数对象的好方法是什么?特别是,我有一个重载函数foo有一些随机数量的重载:一些重载可以通过ADL找到,其他的可能在无数地方定义。我有一个辅助对象:staticstruct{templateautooperator()(Args&&...args)const->decltype(foo(std::forward(args)...)){return(foo(std::forward(args)...));}}call_foo;这让我可以将重载集作为单个对象传递。如果我想curryfoo,我应该怎么做?由于curry和部分函数应用程序经常可以

Ruby 反向柯里化(Currying) : Is this possible?

关于Ruby1.9.x中的柯里化(Currying),我一直在一些地方使用它,并且可以翻译为基本上支持proc参数的默认参数:p=proc{|x,y,z|x+y+z}p.curry[1]#=>returnsalambdap.curry[1,2]#=>returnsalambdap.curry[1,2,3]#=>6p2=p.curry[1,2]p2.(2)#=>5p2.(4)#=>7非常方便,对吧?事情是,我希望能够反向柯里化(Currying),也就是说,用随机值填充我的proc的最后一个参数。像这样:p=proc{|x,y|x-y}.curry[1]p.(4)我想要的结果是3。这将返

JavaScript curry : what are the practical applications?

我想我还没学会curry。我明白它的作用,以及如何去做。我只是想不出我会使用它的情况。您在哪里使用JavaScript中的柯里化(Currying)(或者主要库在哪里使用它)?欢迎使用DOM操作或一般应用程序开发示例。Oneoftheanswers提到动画。slideUp、fadeIn等函数将元素作为参数,通常是一个柯里化(Currying)函数,返回内置默认“动画函数”的高阶函数。为什么这比仅仅应用带有一些默认值的更高层函数更好?使用它有什么缺点吗?这里有一些关于JavaScriptcurrying的好资源:http://www.dustindiaz.com/javascript-c

JavaScript curry : what are the practical applications?

我想我还没学会curry。我明白它的作用,以及如何去做。我只是想不出我会使用它的情况。您在哪里使用JavaScript中的柯里化(Currying)(或者主要库在哪里使用它)?欢迎使用DOM操作或一般应用程序开发示例。Oneoftheanswers提到动画。slideUp、fadeIn等函数将元素作为参数,通常是一个柯里化(Currying)函数,返回内置默认“动画函数”的高阶函数。为什么这比仅仅应用带有一些默认值的更高层函数更好?使用它有什么缺点吗?这里有一些关于JavaScriptcurrying的好资源:http://www.dustindiaz.com/javascript-c

c++ - C++ 中的函数式编程。实现 f(a)(b)(c)

我一直在学习使用C++进行函数式编程的基础知识。我正在尝试创建一个函数f(a)(b)(c),它将返回a+b+c。我成功实现了返回a+b的函数f(a)(b)。这是它的代码:std::functionplus2(doublea){return[a](doubleb){returna+b;};}我只是不知道如何实现函数f(a)(b)(c),正如我之前所说,它应该返回a+b+c。 最佳答案 你可以通过让你的函数f返回一个functor来做到这一点。,即实现operator()的对象。这是一种方法:structsum{doubleval;su

c++ - C++ 中的函数式编程。实现 f(a)(b)(c)

我一直在学习使用C++进行函数式编程的基础知识。我正在尝试创建一个函数f(a)(b)(c),它将返回a+b+c。我成功实现了返回a+b的函数f(a)(b)。这是它的代码:std::functionplus2(doublea){return[a](doubleb){returna+b;};}我只是不知道如何实现函数f(a)(b)(c),正如我之前所说,它应该返回a+b+c。 最佳答案 你可以通过让你的函数f返回一个functor来做到这一点。,即实现operator()的对象。这是一种方法:structsum{doubleval;su