`flip`函数在JavaScript中的实现?

`flip`函数在JavaScript中的实现?,javascript,functional-programming,Javascript,Functional Programming,请大家分享JavaScript中flip函数的实现。我需要的是反转函数的第一个和第二个参数 让我们假设我有: const funcName = (arg1) => (arg2) => (arg3) => { ... } 我希望它变成: const funcName = (arg2) => (arg1) => (arg3) => { ... } 就像这样: const funcName = (arg3) => (arg2) => (arg1) =

请大家分享JavaScript中flip函数的实现。我需要的是反转函数的第一个和第二个参数

让我们假设我有:

const funcName = (arg1) => (arg2) => (arg3) => { ... }
我希望它变成:

const funcName = (arg2) => (arg1) => (arg3) => { ... }
就像这样:

const funcName = (arg3) => (arg2) => (arg1) => { ... }

你可以这样做

函数flipfn{ 返回函数A,b{ var args=Array.prototype.slice.callarguments,0; args[0]=b; args[1]=a; 返回fn.applythis,args; } } 从

你可以这样做

函数flipfn{ 返回函数A,b{ var args=Array.prototype.slice.callarguments,0; args[0]=b; args[1]=a; 返回fn.applythis,args; } } 众所周知,flip接受了一个包含两个参数a和b的函数,并返回了一个参数已翻转的不同函数

如果您想保留咖喱版本,这是一种实现flip的方法

//f::a->b->c //翻转f::b->a->c 常数翻转=f=>b=>a=>fab 常数f=a=>b=>{[a]:b}; console.log f'nameAlex',/{name:'Alex'} flipf'Alexname',/{name:'Alex'} 将其扩展到两个以上参数的函数相对简单,因为flip可以很容易地组合。

众所周知,flip使用两个参数a和b的函数,并返回一个不同的参数翻转的函数

如果您想保留咖喱版本,这是一种实现flip的方法

//f::a->b->c //翻转f::b->a->c 常数翻转=f=>b=>a=>fab 常数f=a=>b=>{[a]:b}; console.log f'nameAlex',/{name:'Alex'} flipf'Alexname',/{name:'Alex'}
将其扩展到两个以上参数的函数相对简单,因为flip可以很容易地组合。

一件简单的事情是:

常量翻转=fn=>arg1,arg2=>fnarg2,arg1; const reverse=fn=>…args=>fn…args.reverse; const log=reverseconsole.log.bindnull;
日志'Giuseppe','is','name','my' 一件简单的事情是:

常量翻转=fn=>arg1,arg2=>fnarg2,arg1; const reverse=fn=>…args=>fn…args.reverse; const log=reverseconsole.log.bindnull;
日志'Giuseppe','is','name','my';你能解释更多吗?你的函数没有第一个和第二个参数,你有一个箭头函数,返回另一个函数,然后返回另一个函数。你能解释更多吗?你的函数没有第一个和第二个参数,有一个arrow函数返回另一个函数,然后返回另一个函数。它实际上与不同的arrow函数参数不匹配。请在repl中检查它,但它是一个类似于a=>b=>c=>。。。而不是a,b=>…它实际上与不同的箭头函数参数不匹配,请在repl中查看它,但它是一个类似于a=>b=>c=>。。。而不是a,b=>…非常感谢您,特别是提到它可以很容易地编写!你是怎么写flip的?非常感谢你,特别是提到它很容易写!你怎么写翻转?