编程范式
编程语言发展到今天,出现了好多不同的代码编写方式,但不同的方式解决的都是同一个问题,那就是如何写出更为通用、更具可重用性的代码或模块。于是有了编程范式的兴起。
范即模范之意,范式即模式、方法,是一类典型的编程风格,是指从事软件工程的一类典型的风格。
函数式编程是最近比较火热的一种编程范式。
函数式编程
对于函数式编程来说,它只关心定义输入数据和输出数据相关的关系,数学表达式里面其实是在做一种映射(mapping),输入的数据和输出的数据关系是什么样的,是用函数来定义的。
函数式编程原则
-
stateless:函数不维护任何状态。函数式编程的核心精神是 stateless,简而言之就是它不能存在状态,打个比方,你给我数据我处理完扔出来。里面的数据是不变的。
-
immutable:输入数据是不能动的,动了输入数据就有危险,所以要返回新的数据集。
函数式编程优势
-
没有状态就没有伤害。
-
并行执行无伤害。
-
Copy-Paste 重构代码无伤害。
-
函数的执行没有顺序上的问题。
-
惰性求值
-
返回结果的确定性
函数式编程劣势
数据复制比较严重
总结
函数式编程思想:describe what to do, rather than how to do it。
函数式编程是个非常古老的概念,它的核心思想是将运算过程尽量写成一系列嵌套的函数调用,关注的是做什么而不是怎么做,因而被称为声明式编程
正因为如此:函数式编程代码简洁,易于理解,易于做代码重构