这是我参与新手入门的第3篇文章
前言
三大编程思想:面向过程、函数编程、面向对象,今天就来初步了解一下函数编程。大概总结了以下几种表现形式:
柯里化函数
柯里化函数,即把接受多个参数的函数编程接受一个单一参数的函数,并且返回接受余下的参数返回结果的新函数。
普通函数:
function add(a, b){
    return a + b;
}
add(1,1); //2
复制代码柯里化:
function curryingAdd(a){
    return function(b){
        return a+b;
    }
}
curryingAdd(1)(2); //2
复制代码从上面的例子上看得出,先将a参数用一个函数接收,再返回一个函数处理b参数。这就是所谓的函数柯里化。
偏应用函数
function foo(a,b,c){
    return a+b+c;
}
function foo6(a,c){
    foo(a,6,c);
}
复制代码先写一个通用函数,然后再根据具体情况修改参数。这其实对应的就是偏函数。它可以减少任意位置的任意个参数。而柯里化可以看做偏函数的一种特殊的应用,它的作用是将多个参数转换成单一参数。柯里化之后的函数通用性降低了(因为将其他参数固定了),但是适用性提高了(因为其他所有参数都是一致的,我们只需要关心最后一个参数),适用于特定场景下。
组合函数
组合函数,顾名思义是由若干个函数组合成一个新的函数,同时完成数据的传递。
function add(a, b) {
    return a + b;
}
function square(a) {
    return a * a;
}
function compose(fn1, fn2) {
    return (...args) => fn1(fn2(...args));
}
console.log(compose(square, add)(1, 2)); //9
复制代码以上结合了,偏应用以及柯里化函数。函数compose接受函数add和square作为参数,并返回一个函数用来处理(1,2)的数据。(1,2)先相加得3,再平方得9。
总结
函数式编程是一种编程范式,这篇文章从柯里化、偏应用、组合函数,来了解一下什么是函数式编程。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
    






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)
