如何将这个Javascript作为一个函数包装起来?

时间:2017-09-28 07:07:56

标签: javascript function ecmascript-6

我编写了以下JavaScript,在这种情况下是一个个人挑战,在不使用任何原生方法的情况下编写正弦函数...



f=n=>n<2?1:n*f(n-1)
p=(x,y)=>y--?x*p(x,y):1
w=(c,a)=>c()&&a()&w(c,a)
n=100;z=0; x=Math.PI/4
w(()=>n>-1,()=>{z+=p(-1,n)/f(2*n+1)*p(x,2*n+1),n--})
&#13;
&#13;
&#13;

所以当我输出z的值时,我得到x的正弦值(即Pi / 4弧度的正弦值)

我想把这最后一行包装成一个胖箭头函数(即s = x =&gt; ......不管它是什么......)并让它吐出z的值但是我的最后几行尝试充满了失败......这样我就可以输入X的任何值,并且X的正弦值吐出来......

我想在这种情况下保持f,p和w功能分开...我打算稍后将它们用于其他事情...

任何人都有任何关于如何实现这一目标的线索?

...谢谢

1 个答案:

答案 0 :(得分:2)

z函数中使s成为局部变量,然后从函数中返回它。

f=n=>n<2?1:n*f(n-1);
p=(x,y)=>y--?x*p(x,y):1;
w=(c,a)=>c()&&a()&w(c,a);
s = x => {
    let z = 0, n = 100;
    w(()=>n>-1,()=>{z+=p(-1,n)/f(2*n+1)*p(x,2*n+1),n--});
    return z;
};
console.log(s(Math.PI/4));