函式式程式設計
在js、python等指令碼語言中經常可以看到已函式作為變數來傳遞的用法,這種方法使得程式多是在建立函式、或建立函式(執行)的路上。更甚至一些簡單的方法完全不需要呼叫(引入)庫就可以用簡單的幾行**來解決,可以使得程式專注於做某件事而不被外部因素影響,這個特點使得在多執行緒時不易出現問題。
從一定程度上來說可以簡化**,且思路清晰(**段集中)。但是不恰當的使用也會導致**冗餘、複雜。
以lambda函式為例,用他來作為簡單的函式邏輯是不錯的選擇
a = 233
fn = lambda x: return x * 3 -5
def func2(param, fn):
print(param)
return fn(param)
fn2 = func2
fn(a)
fn2(a, fn)
從python的幾行**可以詮釋函式式程式設計的優勢,合理的使用的確可以減少不少**,同時函式作為變數也使得**編寫更加靈活多變,至於更深層次的優缺點還需慢慢**
lambda
在jdk1.8中迎來了新的變革,引入了lambda及一些列介面支援函式式程式設計
public static boolean vali(string data, functionfc)
public static void show(string data, consumerconsumer)
public static boolean check(string data, predicatepredicate)
public static void main(string args) );
}
consumer, 呼叫accept方法,有輸入無輸出
predicate, 呼叫test方法,有輸入返回條件判斷
Python函式式程式設計之lambda
python可以使用lambda來建立匿名函式。lambda只是乙個表示式,函式題比def簡單的多。lambda主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數。lambda雖然看起來...
函式式程式設計之純函式
純函式 我們應該還記得初中的一些數學知識,函式f的概念就是,對於輸入x產生乙個輸出y f x 這就是普通的純函式。它的定義是 相同的輸入,結果總會得到相同的輸出,而且沒有任何可觀察的 也不依賴外部環境的狀態。最常見的乙個例子就是在我們運算元組的時候slice就是純函式,splice就是不純的,看下面...
F 程式設計 函式式程式設計之Records
當你想把資料組成乙個結構化的格式,而不需要太複雜的語法時,你可以使用f 中的record型別。record型別與c語言的struct型別基本一樣,儲存一組型別的值,通過欄位的值來獲取。定義乙個record型別很簡單,只需要在大括號內定義系列的名稱 型別就可以。要例項化乙個record,只需要提供對應...