摘要:本書主要探索函數(shù)式編程的核心思想。我們在中應(yīng)用的僅僅是一套基本的函數(shù)式編程概念的子集。我稱之為輕量級函數(shù)式編程。通常來說,關(guān)于函數(shù)式編程的書籍都熱衷于拓展閱讀者的知識面,并企圖覆蓋更多的知識點。,本書統(tǒng)稱為函數(shù)式編程者。
原文地址:Functional-Light-JS
原文作者:Kyle Simpson?。 禮ou-Dont-Know-JS》作者
譯者團隊(排名不分先后):阿希、blueken、brucecham、cfanlife、dail、kyoko-df、l3ve、lilins、LittlePineapple、MatildaJin、冬青、pobusama、Cherry、蘿卜、vavd317、vivaxy、萌萌、zhouyao
關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的梁柱;分享,是 CSS 里最閃耀的一瞥;總結(jié),是 JavaScript 中最嚴謹?shù)倪壿嫛=?jīng)過捶打磨練,成就了本書的中文版。本書包含了函數(shù)式編程之精髓,希望可以幫助大家在學(xué)習(xí)函數(shù)式編程的道路上走的更順暢。比心。
本書主要探索函數(shù)式編程[1](FP)的核心思想。在此過程中,作者不會執(zhí)著于使用大量復(fù)雜的概念來進行詮釋,這也是本書的特別之處。我們在 JavaScript 中應(yīng)用的僅僅是一套基本的函數(shù)式編程概念的子集。我稱之為“輕量級函數(shù)式編程(FLP)”。
注釋: 題目中使用了“輕量”二字,然而這并不是一本“輕松的”“入門級”書籍。本書是嚴謹?shù)?,充斥著各種復(fù)雜的細節(jié),適合擁有扎實 JS 知識基礎(chǔ)的閱讀者進行研讀。“輕量”意味著范圍縮小。通常來說,關(guān)于函數(shù)式編程的 JavaScript 書籍都熱衷于拓展閱讀者的知識面,并企圖覆蓋更多的知識點。而本書則對于每一個話題都進行了深入的探究,盡管這種探究是小范圍進行的。
讓我們面對這個事實:除非你已經(jīng)是函數(shù)式編程高手中的一員(至少我不是?。?,否則類似“一個單子僅僅是自函子中的幺半群”這類說法對我們來說毫無意義。
這并不是說,各種復(fù)雜繁瑣的概念是無意義的,更不是說,函數(shù)式編程者濫用了它們。一旦你完全掌握了輕量的函數(shù)式編程內(nèi)容,你將會/但愿會想要對函數(shù)式編程的各種概念進行更正式更系統(tǒng)的學(xué)習(xí),并且你一定會對它們的意義和原因有更深入的理解。
但是我更想要讓你能夠現(xiàn)在就把一些函數(shù)式編程的基礎(chǔ)運用到 JavaScript 編程過程中去,因為我相信這會幫助你寫出更優(yōu)秀的,更符合邏輯的代碼。
更多關(guān)于本書背后的動機和各種觀點討論,請參看[前言]。
JavaScript 輕量級函數(shù)式編程 目錄引言 (by Brian Lonsdorf aka "Prof Frisby")
前言
第 1 章:為什么使用函數(shù)式編程?
置信度
交流渠道
可讀性曲線
接受
你不需要它
資源
書籍推薦
博客和站點
一些庫
總結(jié)
第 2 章:函數(shù)基礎(chǔ)
什么是函數(shù)?
簡要的數(shù)學(xué)回顧
函數(shù) vs 程序
函數(shù)輸入
輸入計數(shù)
隨著輸入而變化的函數(shù)
函數(shù)輸出
提前 return
未 return 的輸出
函數(shù)功能
保持作用域
句法
什么是名稱?
沒有 function 的函數(shù)
來說說 This ?
總結(jié)
第 3 章:管理函數(shù)的輸入(Inputs)
立即傳參和稍后傳參
bind(..)
將實參順序顛倒
一次傳一個
柯里化和偏應(yīng)用有什么用?
如何柯里化多個實參?
反柯里化
只要一個實參
傳一個返回一個
恒定參數(shù)
擴展在參數(shù)中的妙用
參數(shù)順序的那些事兒
屬性擴展
無形參風(fēng)格
總結(jié)
第 4 章:組合函數(shù)
輸出到輸入
制造機器
組合的變體
通用組合
不同的實現(xiàn)
重排序組合
抽象
將組合當(dāng)作抽象
回顧形參
總結(jié)
第 5 章:減少副作用
什么是副作用
潛在的原因
I/O 效果
其他的錯誤
一次就好
數(shù)學(xué)中的冪等
編程中的冪等
純粹的快樂
相對的純粹
有或者無
思考上的透明
不夠透明?
純化
封閉的影響
覆蓋效果
回避影響
總結(jié)
第 6 章:值的不可變性
原始值的不可變性
從值到值
消除本地影響
重新賦值
意圖
凍結(jié)
性能
以不可變的眼光看待數(shù)據(jù)
總結(jié)
第 7 章: 閉包 vs 對象
達成共識
相像
狀態(tài)
行為,也是一樣!
(不)可變
同構(gòu)
同根異枝
結(jié)構(gòu)可變性
私有
狀態(tài)拷貝
性能
總結(jié)
第 8 章:列表操作
非函數(shù)式編程列表處理
映射
映射 vs 遍歷
一個詞:函子
過濾器
Reduce
Map 也是 Reduce
Filter 也是 Reduce
高級列表操作
方法 vs 獨立
查尋列表
融合
列表之外
總結(jié)
第 9 章:遞歸
定義
為什么選擇遞歸
聲明式遞歸
重構(gòu)遞歸
總結(jié)
第 10 章:異步的函數(shù)式
時間狀態(tài)
積極的 vs 惰性的
響應(yīng)式函數(shù)式編程
總結(jié)
第 11 章:融會貫通
準備
股票信息
股票行情界面
總結(jié)
附錄 A: Transducing
首先,為什么
如何,下一步
最后
總結(jié)
附錄 B: 謙虛的 Monad
類型
松散接口
Maybe
Humble
Humility
總結(jié)
附錄 C: 函數(shù)式編程函數(shù)庫
Ramda (0.23.0)
Lodash/fp (4.17.4)
Mori (0.3.2)
總結(jié)
關(guān)于出版本書主要在 on Leanpub 平臺上以電子版本的形式進行出版。我也嘗試出售本書的紙質(zhì)版本,但沒有確定的方案。
除了購買本書以外,如果你想要對本書作一些物質(zhì)上的捐贈,請在 patreon 上進行操作。本書作者感謝你的慷慨解囊。
Patreon
非常歡迎對于本書的任何內(nèi)容貢獻。但是在提交 PR 之前請務(wù)必認真閱讀 Contributions Guidelines。
License & Copyright本書所有的材料和內(nèi)容都歸屬 (c) 2016-2017 Kyle Simpson 所有。
本書根據(jù)Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License 進行授權(quán)許可.
FP,本書統(tǒng)稱為函數(shù)式編程。
FPer,本書統(tǒng)稱為函數(shù)式編程者。
P.S. 整理的好辛苦?。ァ贰叮?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/92068.html
摘要:為了盡可能提升互通性,已經(jīng)成為函數(shù)式編程庫遵循的實際標(biāo)準。與輕量級函數(shù)式編程的概念相反,它以火力全開的姿態(tài)進軍的函數(shù)式編程世界。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的梁柱;分享,是 CSS 里最閃耀的一瞥;總結(jié),...
摘要:所以我覺得函數(shù)式編程領(lǐng)域更像學(xué)者的領(lǐng)域。函數(shù)式編程的原則是完善的,經(jīng)過了深入的研究和審查,并且可以被驗證。函數(shù)式編程是編寫可讀代碼的最有效工具之一可能還有其他。我知道很多函數(shù)式編程編程者會認為形式主義本身有助于學(xué)習(xí)。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson?。 禮ou-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液...
摘要:就像我寫書的過程一樣,每個開發(fā)者在學(xué)習(xí)函數(shù)式編程的旅程中都會經(jīng)歷這個部分。類型在函數(shù)式編程中有一個巨大的興趣領(lǐng)域類型論,本書基本上完全遠離了該領(lǐng)域。在函數(shù)式編程中,像這樣涵蓋是很普遍的。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML...
摘要:這就是積極的函數(shù)式編程。上一章翻譯連載第章遞歸下輕量級函數(shù)式編程你不知道的姊妹篇原創(chuàng)新書移動前端高效開發(fā)實戰(zhàn)已在亞馬遜京東當(dāng)當(dāng)開售。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的梁柱;分享,是 CSS 里最閃耀的一瞥;總...
摘要:一旦我們滿足了基本條件值為,我們將不再調(diào)用遞歸函數(shù),只是有效地執(zhí)行了。遞歸深諳函數(shù)式編程之精髓,最被廣泛引證的原因是,在調(diào)用棧中,遞歸把大部分顯式狀態(tài)跟蹤換為了隱式狀態(tài)。 原文地址:Functional-Light-JS 原文作者:Kyle Simpson-《You-Dont-Know-JS》作者 關(guān)于譯者:這是一個流淌著滬江血液的純粹工程:認真,是 HTML 最堅實的梁柱;...
閱讀 3306·2021-11-24 09:39
閱讀 3881·2021-11-22 09:34
閱讀 4833·2021-08-11 11:17
閱讀 1068·2019-08-29 13:58
閱讀 2582·2019-08-28 18:18
閱讀 549·2019-08-26 12:24
閱讀 836·2019-08-26 12:14
閱讀 745·2019-08-26 11:58