最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS中的一些常用的函數(shù)式編程術(shù)語

 更新時間:2019年06月15日 15:01:42   作者:Unknw  
這篇文章主要介紹了JS中的一些常用的函數(shù)式編程術(shù)語,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,

組合 Composition

組合某種類型(含函數(shù))的兩個元素,進(jìn)而生成一個該類型的新元素:

JavaScript

let compose = (f, g) => a => f(g(a))
let toUpperCase = x => x.toUpperCase()
let exclaim = x => x + '!'
let shout = compose(exclaim, toUpperCase);
shout("hello world") // HELLO WORLD!

偏函數(shù)應(yīng)用 Partial Application

一個多參函數(shù),如果我們只提供了部分參數(shù),這種應(yīng)用就是偏函數(shù)應(yīng)用:

JavaScript

let sum3 = (a, b, c) => a + b + c
let partial = sum3.bind(null, 10, 20)
partial(30) // 60

柯里化 Currying

把多參數(shù)函數(shù)處理成 接受一個參數(shù),返回一個接受下一個參數(shù)的函數(shù) 的形式:

JavaScript

let curryingSum3 = (a) => (b) => (c) => a + b + c
let curriedSum3 = curryingSum3(30)(20) // [Function]
curriedSum3(10) // 60

注意:柯里化和偏函數(shù)應(yīng)用是不同的,它只接受單參輸入;在Haskell這樣的純函數(shù)式語言中,只存在柯里化,多參函數(shù)是一種語法糖,這樣做的好處是為函數(shù)組合提供了更靈活的手段, 并且使得接口更為流暢。

副作用 Side Effect

一個函數(shù)或表達(dá)式如果出現(xiàn)下面情況被認(rèn)為有副作用:除了返回結(jié)果值,還修改了內(nèi)部狀態(tài),或者為外界植入提供了改變內(nèi)部狀態(tài)的可能。有副作用的例子:隨機(jī)數(shù)生成器 或者 IO操作 。

document。prototype。getter=function(){get(this)}

冪等 Idempotency

能夠多次使用同樣的輸入?yún)?shù)無副作用地執(zhí)行多次:

JavaScript

let id = x => x
id(id(id(10))) === id(10) // true
Math.abs(Math.abs(-1)) === Math.abs(-1) // true

引用透明性 Referential Transparency

一個表達(dá)式能夠被它的值替換,而不會影響計(jì)算結(jié)果,這種表達(dá)式稱為引用透明的。

JavaScript

let greeting = () => 'hello, '
greeting() + 'buddy'

上面的表達(dá)式中每次對 greeting() 的調(diào)用,都可以被替換為 'hello, ',我們可以斷言 greeting()具有引用透明性。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

东至县| 安西县| 孙吴县| 江油市| 余江县| 乐陵市| 罗平县| 凌云县| 镇康县| 台山市| 色达县| 德庆县| 错那县| 基隆市| 滦平县| 象州县| 拉孜县| 东山县| 郧西县| 淮滨县| 汶上县| 深州市| 临江市| 公主岭市| 灵石县| 澜沧| 迭部县| 习水县| 西乌珠穆沁旗| 东兴市| 沙洋县| 峡江县| 新晃| 甘泉县| 青川县| 保定市| 民县| 如东县| 武穴市| 沾益县| 武威市|