一瞧剖、什么是柯里化
????柯里化,是函數(shù)式編程的一個(gè)重要概念可免。它既能減少代碼冗余抓于,也能增加可讀性。另外浇借,附帶著還能用來(lái)裝逼捉撮。
????先給出柯里化的定義:在數(shù)學(xué)和計(jì)算機(jī)科學(xué)中,柯里化是一種將使用多個(gè)參數(shù)的一個(gè)函數(shù)轉(zhuǎn)換成一系列使用一個(gè)參數(shù)的函數(shù)的技術(shù)妇垢。
????柯里化的定義巾遭,理解起來(lái)有點(diǎn)費(fèi)勁。為了更好地理解闯估,先看下面這個(gè)例子:
????毫無(wú)疑問(wèn)灼舍,sum 是個(gè)簡(jiǎn)單的累加函數(shù),接受3個(gè)參數(shù)涨薪,輸出累加的結(jié)果骑素。
????假設(shè)有這樣的需求,sum的前2個(gè)參數(shù)保持不變刚夺,最后一個(gè)參數(shù)可以隨意献丑。那么就會(huì)想到末捣,在函數(shù)內(nèi),是否可以把前2個(gè)參數(shù)的相加過(guò)程创橄,給抽離出來(lái)箩做,因?yàn)閰?shù)都是相同的,沒(méi)必要每次都做運(yùn)算妥畏。
????如果先不管函數(shù)內(nèi)的具體實(shí)現(xiàn)邦邦,調(diào)用的寫(xiě)法可以是這樣:?sum(1, 2)(3);?或這樣?sum(1, 2)(10);?。就是咖熟,先把前2個(gè)參數(shù)的運(yùn)算結(jié)果拿到后圃酵,再與第3個(gè)參數(shù)相加。
這其實(shí)就是函數(shù)柯里化的簡(jiǎn)單應(yīng)用馍管。