函式式程式設計之lambda

2021-09-01 05:50:09 字數 932 閱讀 9523

函式式程式設計

在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,只需要提供對應...