函数式编程是一种编程范式.还有声明式编程,命令式编程.
函数式编程: 函数是第一位,既可以作为函数的参数,也可以作为函数的返回值.
命令式编程(过程化编程): 关注执行步骤,常见的编程语言都可以见到,比如javascript的for/while循环
声明式编程(指令式编程): 告诉计算机应该做什么,具体怎么做不关心.比如sql语句,html,css. 不存在变量,控制for/while等语句.
特性
闭包和高阶函数
函数可以是另一个函数的参数也可以是函数的返回值.当函数作为参数时,就形成了高阶函数. 当函数是返回值时,就形成了闭包. 所以函数式编程的特点:闭包和高阶函数.
惰性计算
表达式不是在绑定到变量时立即计算,而是在求值程序需要产生表达式的值时进行计算
递归
用递归做为控制流程的机制(并不是很明白???)
特点
函数是"第一等公民"
只用"表达式",不用"语句"
没有"副作用"
不修改状态
引用透明性
优点
- 代码简洁,开发快速
- 接近自然语言,易于理解
- 更方便的代码管理
- 易于"并发编程"
- 代码的热升级
缺点
函数式编程常被认为严重耗费在CPU和存储器资源
网友评论