FP-函數(shù)式編程

近些年在大數(shù)據(jù)分布式計算的急速發(fā)展下,催生出各種大型軟件的工業(yè)需求。而這種大型軟件要容易理解和維護(hù),OOP繁瑣的語法及指令式編程肯定是力不從心的。于是人們就把視野重新回歸到了沒有副作用的編程范式----FP函數(shù)式。

函數(shù)式編程強(qiáng)調(diào)函數(shù)組合,把一個函數(shù)的輸出當(dāng)做另一個函數(shù)的輸入組合成一個更大的函數(shù)。我們可以直接面對最基本的組件編程,組合過程是明確可料的(函數(shù)引用透明),把細(xì)微的功能組合成大型軟件,而且還能避免重復(fù)代碼。增加了可讀性和可維護(hù)性。

特性:

1.閉包和高階函數(shù)

閉包:依照函數(shù)文本運行時創(chuàng)建的函數(shù)值(對象)

實質(zhì)上,閉包是起函數(shù)的作用并可以像對象一樣操作的對象。

高階函數(shù)可以用另一個函數(shù)(間接地,用一個表達(dá)式) 作為其輸入?yún)?shù),在某些情況下,它甚至返回一個函數(shù)作為其輸出參數(shù)。這兩種結(jié)構(gòu)結(jié)合在一起使得可以用優(yōu)雅的方式進(jìn)行模塊化編程,這是使用 FP 的最大好處。

2.惰性計算(求值)

表達(dá)式不是在綁定到變量時立即計算,而是在求值程序需要產(chǎn)生表達(dá)式的值時進(jìn)行計算。

3.函數(shù)是第一等公民

4.引用透明

任何程序中符合引用透明的的表達(dá)式都可以由它的的結(jié)果所替代,而不改變該程序的含義。

5.沒有副作用

一個函數(shù)在程序的執(zhí)行過程中除了根據(jù)輸入?yún)?shù)給出的運算結(jié)果之外沒有其他的影響,就可以說是沒有副作用的

6.只用‘表達(dá)式’,不用‘語句’

告訴計算做什么,而不是告訴它怎么做。

7.狀態(tài)不可變


好處:

1. 代碼簡潔,開發(fā)快速

2. 接近自然語言,易于理解

3. 更方便的代碼管理

4. 易于"并發(fā)編程"

5. 代碼的熱升級

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容