直奔主題
function
curryingadd
(x)}
curryingadd(1
)(2)
這是乙個實現加法的函式,按照普通函式的實現方法 curryingadd裡面直接return x+y 為什麼還要return乙個函式。按照我的理解,柯里化就是不是一次性把所有引數傳入,而是每呼叫一次return乙個函式 再次呼叫,最後乙個返回值就是所期望的值。
那為什麼普通函式能夠實現的還要這麼複雜呢,肯定也是有一定的應用場景,使用柯里化能夠減少一點**冗餘度。
使用場景一:減少重複傳遞不變的部分引數
下面舉乙個例子吧
我們檢測字串是否存在
普通寫法
let
gomatch
=function
(reg,str)
let result1 =
gomatch
(/\s+/g
,'i am hungry');
//true
let result2 =
gomatch
(/\s+/g
,'metoo!');
//false
柯里化寫法
function
curryingmatch
(reg)
}let result =
curryingmatch
(/\s+/g);
let ishas =
result
('my boo'
);
這樣我們就不用每次都傳正則匹配進去,而且想實現其他正則匹配判斷,也能很好的復用,減少**冗餘度。
待更新…
簡單理解函式柯里化
柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數且返回結果的新函式的技術。通俗的說,柯里化其實就是將乙個多參的函式,轉換為單參的函式 通過add函式能夠比較直觀的理解函式柯里化 非柯里化 function add x,y a...
js函式柯里化的理解
函式柯里化理解示例 求和 let add function a,b,c else 引數解構版本 function curry fn,args let f1 add.bind console.log f1 2,3 5 但是簡單版bind實現不支援物件和其他引數同時傳入,如下 let f2 add.bi...
js函式柯里化
什麼是函式柯里化?在電腦科學中,柯里化 currying 是把接受多個引數的函式變換成接受乙個單一引數 最初函式的第乙個引數 的函式,並且返回接受餘下的引數且返回結果的新函式的技術。這個技術由 christopher strachey 以邏輯學家 haskell curry 命名的,儘管它是 mos...