欢迎浏览我的博客 获取更多精彩文章
函数式编程的思考
什么是函数式编程?
为了要理解什么是函数式编程,我们首先要知道什么不是函数式编程.通常,我们用的最多的编程范式是命令式编程,它由"工作"组成,与计算机的执行方式相同,即运行一行命令,做一件事,然后运行下一行命令.这意味着,当我们使用命令行式编程的时候,抽象地来看,代码中会有一个初始状态,一个转换过程和一个终止状态.
比如,当我们要表示一个a+b的程序,我们会这样表示
if b equals 0 => return a
else => return a plus b
而函数式编程,是由"是什么"的元素来构成的,比如,对于命令式编程,2+3对他来说是执行一个2+3的命令,最后输出5,而对于函数式编程,2+3就是5
或许这样子说会有一点令人迷惑,但是我们会在以后慢慢地清晰这个概念
函数式编程的特点
函数式编程最大的特点就是,他是没有副作用的.具体来说:
- 他不会改变外部变量的值
- 不会将anything输出
- 不会抛出异常(并不表示不会出错)
换句话来说,FP是一种抽象的黑盒方法的表示.
同时,函数式编程其实是相对的,在一个函数的内部,他的实现可以是命令行式的,但是可以让外部用函数式来进行调用,并且无副作用,那么在外部看来,这个就是一个符合函数式编程的函数
其次,函数式编程是引用透明的,其中包括了
- 他是独立的,他不会依赖除了输入以外的外部条件来进行工作,他不会从文件,数据库或者网络中读取数据