关于javascript函数式编程的初步理解

javascript不是一门函数式编程语言,但是可以在其中应用函数式编程技术

函数式编程的思想核心:将运算过程写成一连串的函数调用计算结果,不关心计算的过程,专注于结果,复杂的问题通过一个一个函数解决

首先为了保证关注于结果,函数式编程要保证函数是纯函数,纯函数是指不包含任何副作用,每次输入的值永远得到唯一的输出的函数,比如:

//纯函数
function add(x,y){
     
    return x + y
}
//不纯函数 外界的min影响了该函数的输出
var number = 1;
function add2(x){
     
    return x + min
}
//不纯函数 输出的值不唯一
function randoms(){
     
    return Math.random()
}

我们想用函数式编程得到数字自增和输入数字一半加一个数字,在函数式编程中是:

 var add=x=>{
     x++;return x};
 var harf=(x,y)=>x/2+y;
 console.log(add(1)) //2
 console.log(harf(1,2)) //2.5

如果我们想获得一个先除以2加一个数字再自增的运算,就是add(harf(x,y))这样的算法 我们就要用到组合函数

var compose=(f1,f2)=>((x,y)=>f1(f2(x,y)));

这样我们可以将f1与f2组合一起,也通过函数柯里化,可以接受不同的参数

console.log(compose(add,harf)(1,2));//3.5

你可能感兴趣的:(web前端,javascript)