初识函数式编程(二)

高阶函数

函数当参数,将传入的函数封装,返回封装后的函数,达到更高程度的抽象,

var add = (a,b) => a+b;
var math = (func,arr) => func(arr[0],arr[1]);
math(add,[1,2])

尾调用优化

函数最后一步,调用本身。

//普通递归
function sum(x){
  if(x===1){
    return 1;
  }
  return x+sum(x-1);
}

//尾调用优化
function sum(x,total){
  if(x===1){
    return x+total;
  }
  return sum(x-1,x+total);
}

闭包

function makePowerFn(power){
  function powerFn(base){
    return Math.pow(case,power);
  }
}
var square = makePowerFn(2);
square(3);  //9
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 编程思路的概念[补充] 函数式编程思维范畴论基本理论基本概念纯函数函数的柯里化函数的组合Point Free声明式...
    小漠穷秋阅读 1,885评论 0 0
  • 1.高阶函数 函数当参数,把传入的函数做一个封装,然后返回这个封装函数,达到更高程度的抽象。🌰 2.尾调用优...
    藕藕藕汀阅读 1,014评论 1 1
  • 现在大公司的编程方式有: 范畴论Category Theory 函数式编程是范畴论的数学分支是一门很复杂的数学,认...
    扶搏森阅读 4,547评论 0 0
  • 函数式编程不是用函数来编程,旨在将复杂的函数符合成简单的函数。 1.函数是一等公民。所谓”第一等公民”(first...
    我竟无言以对_1202阅读 845评论 0 0
  • 什么是函数式编程? 函数式编程(FP)是基于一个简单又意义深远的前提的:只用纯函数来构建程序。这句话的深层意思是,...
    Tangpj阅读 5,621评论 0 10