一、概述
本文主要介紹函數式編程中相關概念,採用Scala作爲描述語言。
二、函數是第一等公民
意思是,把函數和其他類型等同對待,可以定義函數局部變量,可以將函數作爲參數,也可以返回函數。
三、副作用
無副作用函數接受輸入,產生輸出,不會改變調用對象,或者作爲參數傳入的對象的狀態。
四、閉包
即函數中定義的函數,由於它可以訪問外圍定義的變量,好像把外圍“包起來”,稱爲閉包。
五、低階函數,高階函數
低階函數:不接收函數作爲參數的函數
高階函數:接收函數作爲參數的函數
六、柯里化
定義“返回函數的函數”,目的是促進函數的複用。
七、可變性
函數式編程倡導使用"不可變"對象。
不可變對象從創建開始,狀態就不再改變,即它的所有方法都是沒有副作用的(不包括println這種副作用)。