A book about functional programming in JavaScript.
Branch: zh-cn
Clone or download
Pull request Compare This branch is 372 commits ahead, 142 commits behind getify:master.
zhouyao Merge pull request #61 from blueken/zh-cn
fix: delete english sentense
Latest commit 61ecf7a Jan 23, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ch11-code ch11: finishing out discussion of main UI methods Jan 31, 2017
.gitignore support gitbook Sep 30, 2017
CONTRIBUTING.md Update CONTRIBUTING.md Aug 7, 2017
ISSUE_TEMPLATE.md update: 修改链接为 相对地址 Aug 15, 2017
LICENSE.txt updating with license, adding note about not being an 'intro' book, r… Sep 13, 2016
PULL_REQUEST_TEMPLATE.md update: 修改链接为 相对地址 Aug 15, 2017
README.md Update README.md Aug 17, 2017
SUMMARY.md add SUMMARY for gitbook Sep 30, 2017
apA.md update: 修改链接为 相对地址 Aug 15, 2017
apB.md 完成修改 Aug 10, 2017
apC.md update: 修改完成 Aug 9, 2017
ch1.md Update ch1.md Aug 10, 2017
ch10.md 修改校对完毕 Aug 9, 2017
ch11.md fix(revision): 🐛用引号 Aug 9, 2017
ch2.md update: 校对修改 Aug 7, 2017
ch3.md update: 最终校对修改 Aug 8, 2017
ch4.md Update ch4.md Aug 12, 2017
ch5.md Update ch5.md Aug 8, 2017
ch6.md update: 校对修改 Aug 9, 2017
ch7.md fix: delete english sentense Jan 23, 2019
ch8.md Update ch8.md Aug 12, 2017
ch9.md Update ch9.md Aug 9, 2017
fig1.png first start to the book... yay :) Aug 17, 2016
fig10.png ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig10.svg ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig11.png ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig11.svg ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig12.png ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig12.svg ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig13.png ch8: starting discussion of recursion, adding some visual illustrations Oct 4, 2016
fig13.svg ch8: starting discussion of recursion, adding some visual illustrations Oct 4, 2016
fig14.png ch8: starting discussion of recursion, adding some visual illustrations Oct 4, 2016
fig14.svg ch8: starting discussion of recursion, adding some visual illustrations Oct 4, 2016
fig15.png ch8: adding to 'stack' section Oct 10, 2016
fig15.svg ch8: adding to 'stack' section Oct 10, 2016
fig16.png ch8: filling out sections on 'tail calls' and 'ptc' Oct 10, 2016
fig16.svg ch8: filling out sections on 'tail calls' and 'ptc' Oct 10, 2016
fig17.png ch1: adding 'readability curve' section and figure Jan 31, 2017
fig17.svg ch1: adding 'readability curve' section and figure Jan 31, 2017
fig18.png ch6: adding fig18 to visualize internal structure of an immutable arr… Jan 31, 2017
fig18.svg ch6: adding fig18 to visualize internal structure of an immutable arr… Jan 31, 2017
fig2.png ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig2.svg ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig3.png ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig3.svg ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig4.png ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig4.svg ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig5.png ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig5.svg ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig6.png ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig6.svg ch4: adding candy factory diagrams, clarifying some text Sep 17, 2016
fig7.png ch7: added 'beyond lists' section on other data structures Sep 30, 2016
fig8.png ch7: added 'beyond lists' section on other data structures Sep 30, 2016
fig8.svg ch7: added 'beyond lists' section on other data structures Sep 30, 2016
fig9.png ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
fig9.svg ch7: adding conceptual diagrams for map/reduce/filter Oct 2, 2016
foreword.md Update foreword.md Aug 1, 2017
preface.md Update preface.md Aug 13, 2017
toc.md Update toc.md Aug 14, 2017

README.md

JavaScript 轻量级函数式编程

沪江Web前端团队

参与者(排名不分先后):阿希bluekenbrucechamcfanlifedailkyoko-dfl3velilinsLittlePineappleMatildaJin冬青pobusamaCherry萝卜vavd317vivaxy萌萌zhouyao

关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTML 最坚实的梁柱;分享,是 CSS 里最闪耀的一瞥;总结,是 JavaScript 中最严谨的逻辑。经过捶打磨练,成就了本书的中文版。本书包含了函数式编程之精髓,希望可以帮助大家在学习函数式编程的道路上走的更顺畅。比心。

本书主要探索函数式编程[1](FP)的核心思想。在此过程中,作者不会执着于使用大量复杂的概念来进行诠释,这也是本书的特别之处。我们在 JavaScript 中应用的仅仅是一套基本的函数式编程概念的子集。我称之为“轻量级函数式编程(FLP)”。

注释: 题目中使用了“轻量”二字,然而这并不是一本“轻松的”“入门级”书籍。本书是严谨的,充斥着各种复杂的细节,适合拥有扎实 JS 知识基础的阅读者进行研读。“轻量”意味着范围缩小。通常来说,关于函数式编程的 JavaScript 书籍都热衷于拓展阅读者的知识面,并企图覆盖更多的知识点。而本书则对于每一个话题都进行了深入的探究,尽管这种探究是小范围进行的。

让我们面对这个事实:除非你已经是函数式编程高手中的一员(至少我不是!),否则类似“一个单子仅仅是自函子中的幺半群”这类说法对我们来说毫无意义。

这并不是说,各种复杂繁琐的概念是无意义的,更不是说,函数式编程者滥用了它们。一旦你完全掌握了轻量的函数式编程内容,你将会/但愿会想要对函数式编程的各种概念进行更正式更系统的学习,并且你一定会对它们的意义和原因有更深入的理解。

但是我更想要让你能够现在就把一些函数式编程的基础运用到 JavaScript 编程过程中去,因为我相信这会帮助你写出更优秀的,更符合逻辑的代码。

更多关于本书背后的动机和各种观点讨论,请参看前言

本书

目录

关于出版

本书主要在 on Leanpub 平台上以电子版本的形式进行出版。我也尝试出售本书的纸质版本,但没有确定的方案。

除了购买本书以外,如果你想要对本书作一些物质上的捐赠,请在 patreon 上进行操作。本书作者感谢你的慷慨解囊。

patreon.png

真人教学课程

本书内容大多源自于我教授的一个同名课程(以公司举办的公开或内部研讨会这样的形式进行)。

http://getify.me

如果你喜欢本书的内容,并希望组织此类课程,或者组织关于其他 JS/HTML5/Node.js 课程,请通过以下方式联系我: http://getify.me

在线视频课程

我还提供一些可以在线点播的 JS 培训课程。我在 Frontend Masters 上开办课程,例如我的 Functional-Lite JS 研讨会。还有一些课程发布在 PluralSight 上。

Contributions

关于内容贡献

非常欢迎对于本书的任何内容贡献。但是在提交 PR 之前请务必认真阅读 Contributions Guidelines

License & Copyright

版权

本书所有的材料和内容都归属 (c) 2016-2017 Kyle Simpson 所有。

Creative Commons License
本书根据Creative Commons Attribution-NonCommercial-NoDerivs 4.0 Unported License 进行授权许可.

  1. FP,本书统称为函数式编程。