const compose = f => g => x => f(g(x));
const f = compose (x => x * 4) (x => x + 3);
f(2) // 20
求一个化简后的compose!!!!!!.......还有为什么f(2)等于8
const compose = f => g => x => f(g(x));
const f = compose (x => x * 4) (x => x + 3);
f(2) // 20
求一个化简后的compose!!!!!!.......还有为什么f(2)等于8
var compose= function compose(f){
return function(g){
return function (x){
return f(g(x))
}
}
}
var f = compose(function(x){
return x*4;
})(function(x){
return x + 3;
});
f(2)//20
就像一楼说滴一样,就是这个东东
8 回答5.8k 阅读✓ 已解决
9 回答9.2k 阅读
6 回答4.7k 阅读✓ 已解决
5 回答3.5k 阅读✓ 已解决
4 回答7.9k 阅读✓ 已解决
7 回答9.8k 阅读
5 回答7.1k 阅读✓ 已解决
地址
可能给compose的参数换个名字更阅读一些?
三次调用再拆为
compose(function(x) {return x * 4;})
即参数a为函数function(x) {return x * 4;}
内部a(b(c))
相当于对a
调用内部参数x
为b(c)
,得到function(b){return function(c){return b(c)*4}}
此时
f1 = function(b){return function(c){return b(c)*4}}
同样对f1
的调用f1(function(x) {return x + 3;})
相当与参数b
为function(x){return x+3}
,内部b(c)相当于将c
作为参数传入b
中,得到function(c){return (c+3)*4}
此时
f2=function(c){return (c+3)*4}
,f2(2)=20
有点绕,可以拿笔和纸写一下。