函數(shù)式編程(簡稱FP)是一種編程范式,其中最基本的元素是不可修改的值,以及不與其他函數(shù)共享狀態(tài)的“純函數(shù)”。純函數(shù)對于給定的輸入永遠(yuǎn)返回同樣的輸出,而且不會修改任何數(shù)據(jù),也不會造成副作用。因此,純函數(shù)經(jīng)常與數(shù)學(xué)運(yùn)算比較。例如,3+4永遠(yuǎn)等于7,不管同時進(jìn)行了其他任何數(shù)學(xué)運(yùn)算,也不管之前進(jìn)行了多少次加法運(yùn)算。
有了純函數(shù)和不可修改的值,程序員就可以創(chuàng)建邏輯結(jié)構(gòu)了。迭代可以用遞歸代替,因為遞歸才是讓同一個動作多次執(zhí)行的“函數(shù)式”做法。函數(shù)使用新的輸入調(diào)用自己,直到參數(shù)滿足某個終止條件。此外,還有高階函數(shù),它的輸入是其他函數(shù),返回另一個函數(shù)。我稍后會介紹這個概念。
盡管函數(shù)式編程從上世紀(jì)五十年代就出現(xiàn)了,而且許多語言也都實(shí)現(xiàn)了它,但它并沒有完全地描述一門語言。Clojure、CommonLisp、Haskell和OCaml都是以函數(shù)式為主的語言,也都融合了其他不同的編程語言概念,如類型系統(tǒng)、嚴(yán)格或懶惰求值等。大多數(shù)語言還用某種方法支持副作用,如寫入文件、讀取文件等,通常這些副作用都被仔細(xì)地標(biāo)記為“不純凈”。
人們通常都認(rèn)為函數(shù)式很深奧,而且與可實(shí)踐性相比,它更看重優(yōu)雅和簡潔。大公司很少會在大規(guī)模項目上依賴于函數(shù)式為主的語言,即使要用也是在較小的范圍內(nèi),遠(yuǎn)遠(yuǎn)不如其他C++、Java、Python等語言流行。但是,F(xiàn)P實(shí)際上只是一種框架,一種考慮邏輯流的方式,它本身也有優(yōu)點(diǎn)和缺點(diǎn),而且也能與其他編程范式配合使用。
以上內(nèi)容為大家介紹了python之什么是函數(shù)式編程?希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.jsszjs.cn/