關於函式柯里化的一些理解

2021-08-02 08:20:12 字數 425 閱讀 3880

大家都學過數學,都應該記得下面這個熟悉的表示式

y=f(x);

沒錯,y是關於x的函式,當x確定的時候,y也就確定

再比如,z=f(x,y);

z是關於x,y的函式,當其中乙個x或者y確定的時候,就會變成

z=f(x)或者z=f(y)這樣的關係

先寫乙個簡單的柯里化的例子:

function

curry

(fn)

}function

add(x,y)

var res=curry(add,5);

res(6)//30

原先add只是乙個普通的function,輸入乙個變數x和乙個變數y,返回兩數之積,這裡柯里化之後,傳入引數5,res變成了乙個關於y的乙個函式,所以執行res(6)就返回了30

關於函式柯里化

今天在群裡看到有人提出乙個問題,關於如何實現如下效果的sum函式 1 sum 1,2 3 2 sum 1 2 3 1 function sum num1 1516 return sum17 1819 function docount num2 3334 return count 35 3637 do...

簡單理解函式柯里化

柯里化 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...