美文网首页
还不理解函数式编程?

还不理解函数式编程?

作者: 初空 | 来源:发表于2021-05-07 15:51 被阅读0次

    什么是函数式编程

    函数式编程(Functional Programming, FP),FP是编程范式之一,可以认为是一种编程风格,是一种思维模式和实现的方法,我们经常听说的编程范式还有面向过程编程、面向对象编程等.

    • 面向过程编程的思维方式:简单来说就是按照步骤来实现,一步一步来实现我们想要的功能。
    • 面向对象编程的思维方式:把现实世界中的事物抽象成编程世界中的类和对象,通过封装、继承和多态来演示事物之间的内在联系
    • 函数式编程的思维方式:把现实世界中的事物和事物之间的联系抽象到程序世界 (对运算的过程进行抽象)
      • 程序的本质:根据输入通过某种运算获得相应的输出,在程序开发过程中会涉及很多有输入和输出的函数
      • x-f(联系,映射)->y, y=f(x),x就是输入,f运算过程就是函数式编程中的函数,y就是结果输出,通过y=f(x)来表述运算过程
      • 函数式编程中的函数指的不是程序中的函数(方法),而是数学中的函数即映射关系,例如: y= cos(x),cos就是函数用来描述y与x的关系,一但x确定了y也就确定了
      • 相同的输入始终要得到相同的输出(纯函数)

    总结来说:函数式编程就是对运算过程的抽象

    说了这么多来个简单例子巩固下

    比如说求2个数的和然后输出结果

    //非函数式编程
    let num1 = 2;
    let num2 = 2;
    let sum = num1 + num2;
    console.log(sum);
    
    //函数式编程
    function add (n1, n2) {
      return n1 + n2;
    }
    let sum = add(1, 2);
    

    非函数式编程的方式是先定义2个变量(num1和num2),然后2个数在相加赋值给新的变量(sum),最后在打印,是通过步骤一步一步来实现的,是面向过程的方式.
    函数式编程的思想,对运算过程进行抽象,要计算2个数的和,首先抽象一个函数(add)用来计算2个数的和,这个函数接受2个参数,当函数运算完毕返回一个计算结果,定义完函数可以调用这个函数了.
    相对于非函数式编程,当使用函数式编程就一定会定义一些函数,这些函数也就可以被复用,并且定义的函数也一定是颗粒度很细的函数,将来也可以把这些函数在组合生成功能更加强大的函数,还有很多优势就不一一在说了,有兴趣的同学可以自行查阅.

    相关文章

      网友评论

          本文标题:还不理解函数式编程?

          本文链接:https://www.haomeiwen.com/subject/mjnsdltx.html