A. 編程中的函數是什麼意思有什麼用
函數的作用就是使人把相對獨立的某個功能抽象出來,使之成為一個獨立的實體。
函數包括了內置函數和自定義函數
比方頭文件里邊的函數都是內置函數,你指定了頭文件就可以直接調用
自定義函數需要你自己完成函數定義,函數申明,函數調用
函數其實就是你為了實現某個功能,做成的一個相對獨立的結構
B. 為什麼這兩年函數式編程又火起來了呢
函數式編程的好處
由於命令式編程語言也可以通過類似函數指針的方式來實現高階函數,函數式的最主要的好處主要是不可變性帶來的。沒有可變的狀態,函數就是引用透明(Referential transparency)的和沒有副作用(No Side Effect)。
一個好處是,函數即不依賴外部的狀態也不修改外部的狀態,函數調用的結果不依賴調用的時間和位置,這樣寫的代碼容易進行推理,不容易出錯。這使得單元測試和調試都更容易。
不變性帶來的另一個好處是:由於(多個線程之間)不共享狀態,不會造成資源爭用(Race condition),也就不需要用鎖來保護可變狀態,也就不會出現死鎖,這樣可以更好地並發起來,尤其是在對稱多處理器(SMP)架構下能夠更好地利用多個處理器(核)提供的並行處理能力。3.cpu的性能提升將體現在核數增加,這樣並行的程序運行速度會越來越快。並行的程序的寫法就是找出不能並行的地方,其他地方都盡量並行。
如果要這樣寫,最需要避免的事情就是賦值。函數式編程的本質就是,規避掉「賦值」。
C. 函數式編程的特點
函數式編程具有五個鮮明的特點。
1、函數是"第一等公民"
所謂"第一等公民"(first class),指的是函數與其他數據類型一樣,處於平等地位,可以賦值給其他變數,也可以作為參數,傳入另一個函數,或者作為別的函數的返回值。
2、只用"表達式",不用"語句"
"表達式"(expression)是一個單純的運算過程,總是有返回值;"語句"(statement)是執行某種操作,沒有返回值。函數式編程要求,只使用表達式,不使用語句。也就是說,每一步都是單純的運算,而且都有返回值。
3、沒有"副作用"
所謂"副作用"(side effect),指的是函數內部與外部互動(最典型的情況,就是修改全局變數的值),產生運算以外的其他結果。
4、不修改狀態
上一點已經提到,函數式編程只是返回新的值,不修改系統變數。因此,不修改變數,也是它的一個重要特點。
5、引用透明性
函數程序通常還加強引用透明性,即如果提供同樣的輸入,那麼函數總是返回同樣的結果。就是說,表達式的值不依賴於可以改變值的全局狀態。