`flip`函数在JavaScript中的实现?
请大家分享JavaScript中flip函数的实现。我需要的是反转函数的第一个和第二个参数 让我们假设我有:`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) =
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的?非常感谢你,特别是提到它很容易写!你怎么写翻转?