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

資訊專欄INFORMATION COLUMN

fp->compose

yuxue / 430人閱讀

摘要:說(shuō)明數(shù)據(jù)和操作解耦抽象化的功能函數(shù)組件更易復(fù)用和維護(hù)。說(shuō)明一言以蔽之就是為每個(gè)參數(shù)返回一個(gè)函數(shù)。總結(jié)通過(guò)已有的函數(shù)進(jìn)行組合最大程度的復(fù)用已有函數(shù)需要提前構(gòu)思好抽象單元函數(shù)。

引言

在fp編程中,compose是一個(gè)重要應(yīng)用場(chǎng)景,下面談?wù)撘恍﹤€(gè)人理解。

const R=require("ramda");
const data=[{
    name:"gcy",
    sex:"male"
},{
    name:"ycg",
    sex:"female"
}]
const getName=R.compose(
    R.map(d => d.name),
    R.filter(d => d.sex=="male")
);

console.log(getName(data));

說(shuō)明 數(shù)據(jù)和操作解耦,抽象化的功能函數(shù)組件更易復(fù)用和維護(hù)。

上面filter做到了只接受謂詞函數(shù)作為唯一約束,自由變量是如何被過(guò)濾,這涉及到curry,如下所示。

var _ = require("lodash");

const Rfilter=function (predicate) {
    return function (data) {
        return _.filter(data,predicate);
    }
}
console.log(Rfilter( d => d.name=="gcy")(data));

說(shuō)明 curry一言以蔽之就是為每個(gè)參數(shù)返回一個(gè)函數(shù)。好處是可以依賴透明,無(wú)觀察副作用,哈哈,其實(shí)所有fp純函數(shù)都有這個(gè)特性,其次簡(jiǎn)化函數(shù)使用難度(相對(duì)來(lái)說(shuō),為curry而curry就得不償失了)和方便compose。

const {comp,pipeline,partial,inc,filter,sort}=require("mori");
const todos=[{
    name:"g1",
    age:"20"
},{
    name:"g2",
    age:"21"
},{
    name:"g1",
    age:"22"
}];
const sortByname=partial(sort,(x,y) => x.name x.age>=21);
console.log(pipeline(todos,filterByAge,sortByname))

說(shuō)明 無(wú)論普通的compose,partial,還是curry可讀性都不好,上面既具有組合性,同時(shí)管道式的閱讀方式看起來(lái)順暢,而不是自內(nèi)向外,自右向左的函數(shù)式組合讀法。

總結(jié)

通過(guò)已有的函數(shù)進(jìn)行組合,最大程度的復(fù)用已有函數(shù),需要提前構(gòu)思好抽象單元函數(shù)。最近挺忙的,維護(hù)一后端寫(xiě)的代碼A(){B()|C()},B(){C()},C(){D()}都是些全局函數(shù),然后依賴一些全局變量,有極大的觀察副作用,同時(shí)沒(méi)有模塊化,零件無(wú)組織的散落個(gè)各個(gè)文件中,典型的反例,感觸頗深(>﹏<)。

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

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

相關(guān)文章

  • 在python中讀取和寫(xiě)入CSV文件詳情

      小編寫(xiě)這篇文章的主要目的,主要是給大家去做一個(gè)解答,主要利用python去讀取和載入數(shù)據(jù),其中包括讀取和寫(xiě)入CSV文件,具體的一些詳細(xì)內(nèi)容介紹,下面就給大家詳細(xì)解答下。  前言  CSV(Comma-Separated Values)即逗號(hào)分隔值,一種以逗號(hào)分隔按行存儲(chǔ)的文本文件,所有的值都表現(xiàn)為字符串類型(注意:數(shù)字為字符串類型)。如果CSV中有中文,應(yīng)以u(píng)tf-8編碼讀寫(xiě).  1.導(dǎo)入CS...

    89542767 評(píng)論0 收藏0
  • Python計(jì)算AUC的三種方式

      對(duì)于很多從事Python的人來(lái)說(shuō),有很多的人想要去進(jìn)階的,比如學(xué)習(xí)跟多的一些知識(shí),比如,我們?cè)诠ぷ髦袝?huì)遇到,使用Python計(jì)算AUC的三種方式,下面給大家做出一個(gè)解答。  介紹  AUC(Area Under Curve),其實(shí)就是ROC曲線圍成的和下坐標(biāo)軸圍成的一個(gè)面積,這個(gè)面積的數(shù)值一般是不會(huì)大于1的。  當(dāng)然,ROC曲線基本上都在y=x,這條直線上面的一個(gè)正上方,因此AUC的正確值應(yīng)該...

    89542767 評(píng)論0 收藏0
  • python Opencv實(shí)現(xiàn)停車位識(shí)別思路詳解

      小編寫(xiě)這篇文章的一個(gè)主要目的,主要是給大家就相關(guān)的具體內(nèi)容做出一些詳細(xì)解答,比如了解使用python的相關(guān)知識(shí),主要是涉及到python Opencv的一些相關(guān)知識(shí),比如使用python Opencv實(shí)現(xiàn)停車位識(shí)別,就具體的內(nèi)容,下面給大家詳細(xì)解答下。  1.怎么去實(shí)現(xiàn)  (1)第一是需要用到一個(gè)處理畫(huà)框的程序,將圖片中的有車和無(wú)車的停車位給畫(huà)出來(lái),并且保存坐標(biāo)(如果畫(huà)錯(cuò)了,將鼠標(biāo)移至要?jiǎng)h除的...

    89542767 評(píng)論0 收藏0
  • Python海象運(yùn)算符的用法教程

      算法目前是比較火的一個(gè)領(lǐng)域了,其中,python作為算法的一種延伸,其應(yīng)用范圍還是比較的廣泛的。那么,它其中有一個(gè)就是海象運(yùn)算符,它的運(yùn)算教程是什么呢?下面給大家一一的列舉,大家要仔細(xì)的閱讀哦。  前言  大家好,我是閑歡,你們的老相識(shí)呀!  海象可謂是最大的哺乳動(dòng)物了,有人稱它是北半球的土著居民。它圓頭,短而闊的嘴巴,粗大的鼻子,上犬齒形成長(zhǎng)達(dá)40厘米-90厘米的獠牙,每只4公斤以上。雄海象...

    89542767 評(píng)論0 收藏0
  • fp->monadic

    摘要:是可以被的容器類型。出自范疇論數(shù)學(xué)的一個(gè)分支滿足一些定律。滿足的定律是一種特殊的可以鋪平的結(jié)果。說(shuō)明如果用普通第一層異常時(shí)會(huì)連續(xù)執(zhí)行通過(guò)的方式可以在異常發(fā)生時(shí)無(wú)論怎么最后還是它自己從而可以在異常發(fā)生時(shí)避免不必要的錯(cuò)誤執(zhí)行。 functor functor是可以被map over的容器類型。 關(guān)于這句話比較難理解的是,什么是map over? (a -> b) -> f a -> f b...

    DC_er 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<