[Scala函數特性系列]——部分應用函數和柯里化

柯里化是指將原來接收兩個參數的函數變成接收一個參數的函數的過程,新的函數返回一個以原有第二個參數作爲參數的函數。是不是有種被繞暈了的感覺,先別急,先看一個示例:


 

結果:


 

這裏可以看出,柯里化函數與多個參數的函數具有相同的功能,這中間有一個“應用部分函數”,或者叫“偏應用函數”,這個函數multipleOf4表示固定了兩個參數中的一個,部分提供了函數mul所需要的參數,而不是全部提供。柯里化函數在理解上比較偏向於這樣的邏輯。

那麼,爲什麼要使用柯里化呢?首先,柯里化可以讓我們構造出更像原生語句提供的功能的代碼(就像我們在上面說的那樣);第二點也是更重要的一點,就是函數柯里化後,參數相對獨立了,這樣就可以對函數的某個參數單獨提供更多的類型推斷信息。如下例所示:


這裏的corresponds函數就是柯里化函數,其定義如下:


使用柯里化後,該函數柯里化後單獨對第二個參數進行了更詳細的功能定義,豐富了函數的功能。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章