91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

JS中的一些常用的函數式編程術語

發布時間:2020-09-10 11:53:22 來源:腳本之家 閱讀:152 作者:Unknw 欄目:web開發

組合 Composition

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

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!

偏函數應用 Partial Application

一個多參函數,如果我們只提供了部分參數,這種應用就是偏函數應用:

JavaScript

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

柯里化 Currying

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

JavaScript

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

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

副作用 Side Effect

一個函數或表達式如果出現下面情況被認為有副作用:除了返回結果值,還修改了內部狀態,或者為外界植入提供了改變內部狀態的可能。有副作用的例子:隨機數生成器 或者 IO操作 。

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

冪等 Idempotency

能夠多次使用同樣的輸入參數無副作用地執行多次:

JavaScript

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

引用透明性 Referential Transparency

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

JavaScript

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

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

上高县| 滦平县| 嘉义县| 林州市| 余江县| 射阳县| 柯坪县| 偃师市| 潜山县| 台北市| 喀喇沁旗| 涪陵区| 蒙自县| 兴化市| 阳新县| 台南市| 佛教| 宜兴市| 乡宁县| 肇州县| 二连浩特市| 芜湖县| 龙门县| 兴文县| 古蔺县| 荣成市| 乐清市| 栾城县| 三穗县| 永定县| 乌鲁木齐县| 临漳县| 柘城县| 闽侯县| 探索| 禹州市| 孟村| 江都市| 涪陵区| 讷河市| 信宜市|