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

資訊專欄INFORMATION COLUMN

函數式編程(四)

FingerLiu / 2565人閱讀

摘要:命令式代碼與聲明式代碼前面我們介紹了函數式編程中常見的幾種函數,下面我們要開始轉變觀念了。命令式聲明式我們看下函數的簡單實現。接受個參數這個常見的函數會在我們函數式編程中經常出現的三個函數。一段函數式編程的綜合應用

我們接下來介紹函數式語言中3個常見的函數:Map,Filter,Reduce。

命令式代碼與聲明式代碼

前面我們介紹了函數式編程中常見的幾種函數,下面我們要開始轉變觀念了。

命令式代碼的意思就是,我們通過編寫一條又一條指令去讓計算機執行一些動作,這其中一般都會涉及到很多繁雜的細節。 而聲明式就要優雅很多了,我們通過寫表達式的方式來聲明我們想干什么,而不是通過一步一步的指示。

// 命令式
const makes = [];
for (i = 0; i < cars.length; i++) {
  makes.push(cars[i].make);
}

// 聲明式
var makes = cars.map(function(car){ return car.make; });

我們看下es5 Map,Filter,Reduce函數的簡單實現。

Array.prototype.map = function(f) {
    const newArray = [];
    const O = Object(this);
    for (let i = 0; i < O.length; i++) {
        newArray[i] = f(O[i]);
    }
    return newArray;
}


Array.prototype.filter = function(pred) {
    const newArray = [];
    for (var i = 0; i < this.length; ++i) {
        if (pred(this[i]))
            newArray[newArray.length] = this[i];
    }
    return newArray;
}

Array.prototype.reduce = function(f, start) {
    var acc = start;
    for (var i = 0; i < this.length; ++i)
        acc = f(this[i], acc); // f() 接受2個參數
    return acc;
};

這3個常見的函數會在我們函數式編程中經常出現的三個函數。
有一點需要說明的是,for循環是自然語言的處理結果,永遠是比map快的。這個就需要你自己在編寫代碼的時候對利弊進行權衡。

一段函數式編程的綜合應用

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/82882.html

相關文章

  • 前端進擊的巨人():略知函數編程

    摘要:自執行函數閉包實現模塊化以樂之名程序員產品經理對作用域,以及閉包知識還沒掌握的小伙伴,可回閱前端進擊的巨人三從作用域走進閉包。參考文檔利用閉包實現模塊化翻譯淺談中的高階函數系列更文請關注專欄前端進擊的巨人,不斷更新中。。。 系列更文前三篇文章,圍繞了一個重要的知識點:函數。函數調用棧、函數執行上下文、函數作用域到閉包。可見不理解函數式編程,代碼都擼不好。 showImg(https:/...

    omgdog 評論0 收藏0
  • 初見函數編程

    摘要:在學習的過程中時常會聽到一個名次函數式編程,那么究竟什么是函數式編程,函數式編程又有什么優點,這就在這篇博客進行一個簡單的總結吧主要內容函數式編程的概念函數式編程的優點與示例什么是函數式編程首先,我們放下編程的概念,我們來看函數。 在學習 JS 的過程中時常會聽到一個名次——函數式編程,那么究竟什么是函數式編程,函數式編程又有什么優點,這就在這篇博客進行一個簡單的總結吧~ 主要內容: 函...

    jerryloveemily 評論0 收藏0
  • JavaScript的語言特性以及重要版本

    摘要:通常一個完成的不僅僅包含了還包括了以及相關版本該版本在中使用。基于原型函數先行的語言使用基于原型的的繼承機制,函數是的第一等公民其他相關的語言特性編譯型語言把做好的源程序全部編譯成二進制代碼的可運行程序。 轉載請注明出處,創作不易,更多文章請戳 https://github.com/ZhengMaste... 前言:JavaScript誕生于1995年,它是一門腳本語言,起初的目...

    Yangder 評論0 收藏0
  • 《java 8 實戰》讀書筆記 -第十函數編程的技巧

    摘要:但是,最好使用差異化的類型定義,函數簽名如下其實二者說的是同一件事。后者的返回值和初始函數的返回值相同,即。破壞式更新和函數式更新的比較三的延遲計算的設計者們在將引入時采取了比較特殊的方式。四匹配模式語言中暫時并未提供這一特性,略。 一、無處不在的函數 一等函數:能夠像普通變量一樣使用的函數稱為一等函數(first-class function)通過::操作符,你可以創建一個方法引用,...

    nemo 評論0 收藏0
  • 古老的面向對象編程

    摘要:面向對象編程一段完整的創建類的示例如何創建一個類,包含有靜態屬性方法,公有私有屬性方法靜態私有變量靜態私有方法安全模式,防止未使用操作符私有變量方法公有屬性,方法靜態公有屬性靜態共有方法使用關閉包定義靜態私有變量與方法,所有實例創建過程中都 面向對象編程 showImg(https://segmentfault.com/img/bVbeqQd?w=2516&h=534); 一段完整的創...

    sutaking 評論0 收藏0

發表評論

0條評論

FingerLiu

|高級講師

TA的文章

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