函數「柯里化」這單看字面上意思真的猜不出想表達什麼,因為Curry一詞其實是取自人名
Haskell Curry-偉大的邏輯學家,Haskell這語言命名也是取自於他
名字有了含意後我們來瞭解其中
概念
經過柯里化的Function會回傳 Function||Value
維基百科是這麼解釋
如果你固定某些參數,你將得到接受餘下參數的一個函數
解釋的有點饒口,所以我們往下來看點範例
範例
接下來會使用到Ramda來協助我們進行Curry
|
|
我們要呼叫addNumber就是傳入兩個參數進去,那如果想要一個Function固定會將傳進來的值加100呢?以下
|
|
那如果參數不只兩個呢?
|
|
以上是比較簡單的應用,我從ScottSauyet的文章截選幾段程式來演示Curry的好處
原始
|
|
處理後
|
|
這差異就很明顯了,這也是為何柯里化在Function Programming如此重要
總結
Currying是促使Function Programming簡潔的原因之一
我們也可以經由上面「處理後」的程式碼發現這樣更語意化,明白每一步在做的事情