国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

函數(shù)式編程(二)

高璐 / 1819人閱讀

摘要:高階函數(shù)在函數(shù)式語言中,函數(shù)是這個語言中的一等公民。高階函數(shù)可以接收函數(shù)作為參數(shù),或者返回一個函數(shù)結(jié)果,或者兩者同時具備。下面我們看另一個高階函數(shù)我們通過向函數(shù)傳遞一個常量來創(chuàng)建一個函數(shù),將給任意值加上。只要有引用指向它該函數(shù)就會一直存在。

上篇文章介紹了純函數(shù),相信你已經(jīng)理解了純函數(shù)的概念。下面我們接著看一段代碼

let minimum = 21;

let checkAge = age => age >= minimum

// 純的
let checkAge = age => {
  let minimum = 21;
  return age >= minimum;
};

純函數(shù)把關(guān)鍵字18硬編碼在函數(shù)內(nèi)部,擴(kuò)展性差,那我們?nèi)绾谓鉀Q呢?

let checkAge  =(minimum, age) => age >= minimum

機(jī)智如你肯定會想到通過一個參數(shù)將通過傳參數(shù)將minimum傳遞進(jìn)去,很好,這樣很機(jī)智的解決了問題,可是如果情況是這樣的呢?

let minimum = x => x * 2;
let checkAge = age => age >= minimum(2)

我們怎么把這段代碼改成純函數(shù),且不是硬編碼的呢?
我們可以將一個函數(shù)作為參數(shù)傳遞。

高階函數(shù)

在函數(shù)式語言中,函數(shù)是這個語言中的一等公民。通俗來講,函數(shù)僅僅是另一種值而已,他與村口的"劉能" "趙四"這類js其他數(shù)據(jù)類型一樣,把它們存在數(shù)組里,當(dāng)作參數(shù)傳遞,賦值給變量...等等。

let checkAge =(age, minimum) => age >= minimum(2)

我們的新函數(shù)就稱為高階函數(shù)(Higher-order Function)。

高階函數(shù)可以接收函數(shù)作為參數(shù),或者返回一個函數(shù)結(jié)果,或者兩者同時具備。
下面我們看另一個高階函數(shù)

let makeAdder = x => (y => x + y);
let add10 = makeAdder(10);
add10(10); //20

我們通過向makeAdder函數(shù)傳遞一個常量10來創(chuàng)建一個函數(shù)add10,add10將給任意值加上10。
這個makeAdder里面的匿名函數(shù)就是我們經(jīng)常被面試官用來壓壓驚的大名鼎鼎的閉包,這個行為非常的重要,因為如果沒有它,能夠返回函數(shù)的函數(shù)不是很有用。
當(dāng)一個函數(shù)被創(chuàng)建,其整個生命周期中都是可以訪問在在其創(chuàng)建時作用域內(nèi)的所有變量。只要有引用指向它該函數(shù)就會一直存在。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/82889.html

相關(guān)文章

  • 函數(shù)編程

    摘要:代碼組合在函數(shù)式編程中,通過將一個個功能單一的純函數(shù)組合起來實現(xiàn)一個復(fù)雜的功能,就像樂高拼積木一樣,這種稱為函數(shù)組合代碼組合。函數(shù)式編程就變成了運用不同的函子,解決實際問題。 高階函數(shù) 滿足以下兩點的函數(shù): 函數(shù)可以作為參數(shù)被傳遞 函數(shù)可以作為返回值輸出 叫高階函數(shù),很顯然js中的函數(shù)滿足高階函數(shù)的條件。 函數(shù)作為參數(shù): function pow(x) { return x...

    lixiang 評論0 收藏0
  • 【響應(yīng)編程的思維藝術(shù)】 (1)Rxjs專題學(xué)習(xí)計劃

    摘要:由于技術(shù)棧的學(xué)習(xí),筆者需要在原來函數(shù)式編程知識的基礎(chǔ)上,學(xué)習(xí)的使用。筆者在社區(qū)發(fā)現(xiàn)了一個非常高質(zhì)量的響應(yīng)式編程系列教程共篇,從基礎(chǔ)概念到實際應(yīng)用講解的非常詳細(xì),有大量直觀的大理石圖來輔助理解流的處理,對培養(yǎng)響應(yīng)式編程的思維方式有很大幫助。 showImg(https://segmentfault.com/img/bVus8n); [TOC] 一. 響應(yīng)式編程 響應(yīng)式編程,也稱為流式編程...

    lscho 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.16 - 淺入淺出 JavaScript 函數(shù)編程

    摘要:函數(shù)式編程,一看這個詞,簡直就是學(xué)院派的典范。所以這期周刊,我們就重點引入的函數(shù)式編程,淺入淺出,一窺函數(shù)式編程的思想,可能讓你對編程語言的理解更加融會貫通一些。但從根本上來說,函數(shù)式編程就是關(guān)于如使用通用的可復(fù)用函數(shù)進(jìn)行組合編程。 showImg(https://segmentfault.com/img/bVGQuc); 函數(shù)式編程(Functional Programming),一...

    csRyan 評論0 收藏0
  • JavaScript函數(shù)編程

    摘要:函數(shù)式編程二拖延癥了好久,第二篇終于寫出來了。如果你對熟悉的話應(yīng)該還記得,是可以調(diào)用來集中處理錯誤的對于函數(shù)式編程我們也可以做同樣的操作,如果運行正確,那么就返回正確的結(jié)果如果錯誤,就返回一個用于描述錯誤的結(jié)果。 JavaScript函數(shù)式編程(二) 拖延癥了好久,第二篇終于寫出來了。 上一篇在這里:JavaScript函數(shù)式編程(一) 上一篇文章里我們提到了純函數(shù)的概念,所謂的純函數(shù)...

    booster 評論0 收藏0
  • JavaScript 函數(shù)編程

    摘要:注意是單一參數(shù)柯里化是由以邏輯學(xué)家命名的,當(dāng)然編程語言也是源自他的名字,雖然柯里化是由和發(fā)明的。辨別類型和它們的含義是一項重要的技能,這項技能可以讓你在函數(shù)式編程的路上走得更遠(yuǎn)。 slide 地址 三、可以,這很函數(shù)式~ showImg(https://segmentfault.com/img/remote/1460000015978685?w=187&h=160); 3.1.函數(shù)是一...

    thursday 評論0 收藏0

發(fā)表評論

0條評論

高璐

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<