这本书以平衡、实用的角度审视 JavaScript 中的 FP。第一版已经完成。
“轻量函数式 JavaScript” 在将函数式编程(FP)应用于 JavaScript 的同时探索它的核心原理。但使这本书与众不同的是,我们在不沉溺于所有那些沉重的术语的前提下审视这些原理。我们看到的是我称之为 “轻量函数式编程”(FLP)的 FP 基础概念子集,并将它应用于 JavaScript。
注意: 除了标题中的 “轻量” 一词,我不认为或建议将这本书看做一本关于此话题的 “初学者的”、“简单的”、或者 “简介” 书籍。这本书十分缜密而且充满了细节;在深入它之前需要坚实的 JS 基础知识。“轻量” 意味着在范围上的界定;与你经常见到的其他 FP-JavaScript 书籍不同,这本书没有广范地讨论许多,而是在每一个话题上都十分深入。
让我们直面这个问题:除非你已经是 FP 酷小子俱乐部的一员(我不是!),那么像 “一个单子只是自函子范畴中的幺半群” 这种话对我们来说不会意味着任何有用的东西。
这不是说术语没有意义或者 FP 程序员们使用它们是一种错误。一旦你从轻量函数式中毕业,你可能/希望更正式地学习 FP,而且你肯定会有大量的机会去面对它们意味着什么和为什么。
但我想让你 现在 就能够在你的 JavaScript 中应用一些 FP 的基础,因为我相信它将会帮你写出更好,更合理的代码。
要了解更多关于本书背后的动机和角度,请参阅前言。
- 序 (by Brian Lonsdorf, 人称 "Prof Frisby")
- 前言
- 第一章:为什么要进行函数式编程?
- 第二章:函数的性质
- 第三章:管理函数输入
- 第四章:组合函数
- 第五章:降低副作用
- 第六章:值的不可变性
- 第七章:闭包 vs. 对象
- 第八章:递归
- 第九章:列表操作
- 第十章:函数式异步
- 第十一章:综合应用
- 附录 A:Transducing
- 附录 B:谦逊的单子
- 附录 C:FP 库
本书已经出版,并在 Leanpub 上有售。我也会尝试出版印刷版拷贝,但这部分还不确定。
除了购买本书以外,如果你想要对本作品(或者我的其他 OSS 作品)做出经济上的贡献,我有一个 patreon。我将永远感激你的慷慨。
本书的内容很大程度上衍生自我职业中(公开的和私营企业培训的形式)教授的同名课程。
如果你喜欢这些内容并且想要联系我进行关于这些内容,或其他关于 JS/HTML5/node.js 话题的培训,请通过通过 email 联系我: getify @ gmail
我还有好几个 JS 培训课程以在线点播的视频形式提供。我通过 Frontend Masters 教授课程,比如我的轻量函数式 JavaScript v2 教室。我的一些课程也可以在 PluralSight 上看到。
非常感谢 你向本作品做出的任何贡献。
但是在提交 PR 以前 请 仔细阅读内容贡献指引。
The materials herein are all (c) 2016-2017 Kyle Simpson.
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License.