函数式编程概念
一、概述
本文主要介绍函数式编程中相关概念,采用Scala作为描述语言。
二、函数是第一等公民
意思是,把函数和其他类型等同对待,可以定义函数局部变量,可以将函数作为参数,也可以返回函数。
三、副作用
无副作用函数接受输入,产生输出,不会改变调用对象,或者作为参数传入的对象的状态。
四、闭包
即函数中定义的函数,由于它可以访问外围定义的变量,好像把外围“包起来”,称为闭包。
五、低阶函数,高阶函数
低阶函数:不接收函数作为参数的函数
高阶函数:接收函数作为参数的函数
六、柯里化
定义“返回函数的函数”,目的是促进函数的复用。
七、可变性
函数式编程倡导使用"不可变"对象。
不可变对象从创建开始,状态就不再改变,即它的所有方法都是没有副作用的(不包括println这种副作用)。