⑴ 函數式編程對數據處理,機器學習等工作有什麼意義
最直觀的感覺就是好用。隨著經驗的增加,你會發現函數式風格非常適合處理數據流,因為你很容易抽象出一些通用的模式(而你也不需要太多代碼來描述這些模式)。
比如典型的map,rece,filter,它們就是一套非常通用的工具。再比如尾遞歸形式天生就是向量化的,非常適合表示高度形式化的迭代過程。
實際上只要函數可以方便的構造和傳遞(first-class),那麼你就會發現語言的表達力上升了一個台階。而如果你盡量堅持無副作用的約束,你往往還能得到思維上的解放(你不再會被某些奇怪的問題所困擾)
⑵ 函數式編程的特點
函數式編程具有五個鮮明的特點。
1、函數是"第一等公民"
所謂"第一等公民"(first class),指的是函數與其他數據類型一樣,處於平等地位,可以賦值給其他變數,也可以作為參數,傳入另一個函數,或者作為別的函數的返回值。
2、只用"表達式",不用"語句"
"表達式"(expression)是一個單純的運算過程,總是有返回值;"語句"(statement)是執行某種操作,沒有返回值。函數式編程要求,只使用表達式,不使用語句。也就是說,每一步都是單純的運算,而且都有返回值。
3、沒有"副作用"
所謂"副作用"(side effect),指的是函數內部與外部互動(最典型的情況,就是修改全局變數的值),產生運算以外的其他結果。
4、不修改狀態
上一點已經提到,函數式編程只是返回新的值,不修改系統變數。因此,不修改變數,也是它的一個重要特點。
5、引用透明性
函數程序通常還加強引用透明性,即如果提供同樣的輸入,那麼函數總是返回同樣的結果。就是說,表達式的值不依賴於可以改變值的全局狀態。
⑶ 編程中的函數是什麼意思有什麼用
編程函數一般是指把一段代碼封裝起來。然後數學函數對編程來說基本沒用處,只會將原本簡單的編程無限復雜化,實在有需要可以去復制別人的成品函數代碼,沒必要搞懂它