记录一下javascript中的高阶函数
现在有个需求是这样的,计算[a,b]之间所有数之和,包含a,b。
大致有以下几中方式:
(1)for循环
var sum1 = (a,b) =>{
if(a>b) return 0;
var result = 0;
for (var i = a; i <= b; i++)
{
result += i;
}
return result;
}
(2)递归
var sum2 = (a,b) => a>b?0:a+sum2(a+1,b);
(3)匿名递归,或者叫不动点组合子
var sum3 = (f => f(f))(f => (a,b) => a>b?0:a+f(f)(a+1,b));
欢迎关注我的公众号“彤哥读源码”,查看更多“源码&架构&算法”系列文章, 与彤哥一起畅游源码的海洋。
还没有评论,来说两句吧...