這是一本比較相對中穩(wěn)弱左,務(wù)實(shí)的去看待JS的函數(shù)式編程基礎(chǔ)的書籍。第一版現(xiàn)在已完成永部。
本書主要探討了應(yīng)用于javascript的函數(shù)式編程的核心原則依鸥。但本書與眾不同的是,我們在處理這些原則時(shí)兆览,沒有沉溺于上面的繁重的術(shù)語中屈溉。我們研究了JS的函數(shù)式編程基本概念的一個(gè)子集,我把他稱之為函數(shù)式編程基礎(chǔ)抬探,并將它應(yīng)用到j(luò)avascript中去子巾。
注意: 盡管書名中含有“輕”這個(gè)字眼,但我并不推薦把這本書歸類到作為“初學(xué)者入門”或“記帳式”的那一類主題書中去小压。本書嚴(yán)謹(jǐn)嚴(yán)謹(jǐn)线梗,內(nèi)容翔實(shí),在閱讀深入之前怠益,需要有扎實(shí)的JS知識基礎(chǔ)仪搔。“輕”可以理解為范圍有限蜻牢;這本書對每個(gè)主題的理解要比在其他常見的書寫函數(shù)式編程的JS書籍深入得多烤咧,而不是更廣泛。
讓我們看看現(xiàn)實(shí)中是怎么寫的吧:“一個(gè)單元只是內(nèi)函數(shù)類中的一個(gè)單位半群(又名:幺半群)”抢呆,這句話對我們來說是沒有任何幫助的煮嫌,除非你已經(jīng)是基礎(chǔ)函數(shù)中佼佼者(可惜我不是!)镀娶。
上面這并不是說這些術(shù)語沒有意義立膛,或者說函數(shù)式程序設(shè)計(jì)的理念不適用于他們。一旦你掌握了JavaScript輕量級函數(shù)式編程,你可能會希望能更正式地學(xué)習(xí)函數(shù)式的程序設(shè)計(jì)(FP)宝泵,你肯定會接觸到它們的含義和其中的原因好啰。
但我希望您現(xiàn)在能夠?qū)⒑瘮?shù)式程序設(shè)計(jì)(fp)的一些基本原理應(yīng)用到您的javascript中,因?yàn)槲蚁嘈潘鼘椭帉懜枚獭⒏侠淼拇a框往。
**要更多地了解這本書背后的動機(jī)和觀點(diǎn),請看序言闯捎。 **
- 序言 (Brian Lonsdorf, aka "Prof Frisby")
- 前言
- 章節(jié) 1: 為什么要函數(shù)式編程?
- 章節(jié) 2: 函數(shù)的本質(zhì)
- 章節(jié) 3: 管理函數(shù)輸入
- 章節(jié) 4: 組合函數(shù)
- 章節(jié) 5: 減少副作用影響
- 章節(jié) 6: 值的不變性質(zhì)
- 章節(jié) 7: 閉包與對象
- 章節(jié) 8: 遞歸
- 章節(jié) 9: 列表的操作
- 章節(jié) 10: 函數(shù)的異步
- 章節(jié) 11: 匯總
- 附言 A: 轉(zhuǎn)換
- 附言 B: 卑微的單元
- 附言 C: 函數(shù)式編程的庫