函数式编程概念

一、概述

本文主要介绍函数式编程中相关概念,采用Scala作为描述语言。

二、函数是第一等公民

意思是,把函数和其他类型等同对待,可以定义函数局部变量,可以将函数作为参数,也可以返回函数。
函数式编程概念

三、副作用

无副作用函数接受输入,产生输出,不会改变调用对象,或者作为参数传入的对象的状态。
函数式编程概念

四、闭包

即函数中定义的函数,由于它可以访问外围定义的变量,好像把外围“包起来”,称为闭包。
函数式编程概念

五、低阶函数,高阶函数

低阶函数:不接收函数作为参数的函数
高阶函数:接收函数作为参数的函数
函数式编程概念

六、柯里化

定义“返回函数的函数”,目的是促进函数的复用。
函数式编程概念

七、可变性

函数式编程倡导使用"不可变"对象。
不可变对象从创建开始,状态就不再改变,即它的所有方法都是没有副作用的(不包括println这种副作用)。
函数式编程概念