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

还不理解函数式编程?

作者: 初空 | 来源:发表于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个参数,当函数运算完毕返回一个计算结果,定义完函数可以调用这个函数了.
相对于非函数式编程,当使用函数式编程就一定会定义一些函数,这些函数也就可以被复用,并且定义的函数也一定是颗粒度很细的函数,将来也可以把这些函数在组合生成功能更加强大的函数,还有很多优势就不一一在说了,有兴趣的同学可以自行查阅.

相关文章

  • 函数式编程(一)—— 前置知识

    为什么要学函数式编程? 什么是函数式编程?函数式编程和面向对象编程的不同对于函数式编程思维方式的理解: 函数式编程...

  • 简单点,理解iOS与函数式编程

    简单点,理解iOS与函数式编程 简单点,理解iOS与函数式编程

  • pandas apply() 函数用法

    理解 pandas 的函数,要对函数式编程有一定的概念和理解。函数式编程,包括函数式编程思维,当然是一个很复杂的话...

  • 函数式编程 响应式编程

    学习函数式编程对于我们理解Masonry && Snapkit有很大的帮助,函数式编程(链式编程)。下面文章也是参...

  • 还不理解函数式编程?

    什么是函数式编程 函数式编程(Functional Programming, FP),FP是编程范式之一,可以认为...

  • 5.纯函数

    理解JavaScript纯函数 函数式编程中有一个非常重要的概念叫纯函数,JavaScript符合函数式编程的范式...

  • RxSwift初探(1)

    一、前提:函数响应式编程思想 简单来说 函数响应式编程 = 函数式编程 + 响应式编程 (1)函数式 函数式编程是...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • Javascript进阶——函数式编程思想

    什么是函数式编程? 在学习函数式编程之前,我们先来了解一些与之相关的概念,以便于我们更好的理解函数式编程思想: 命...

  • --插入:lamda表达式--

    Lamda表达式属于函数式编程的概念,要理解函数式编程的产生目的,就要先理解匿名内部类。 匿名内部类: 使用lam...

网友评论

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

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