编辑: 施信荣 2019-07-08

1 1) ;

=>

2 C 编辑器 如果更喜欢使用编辑器来编辑更长的一段代码,我推荐非 Emacs 用户使用 Light Table6 ,Intellij 用户则使用 cursive7 .当然如果读者已经在使用 Emacs,那就更

4 http://www.oracle.com/technetwork/java/javase/downloads/index.html.

5 http://leiningen.org.

6 http://lighttable.com/.

7 https://cursive-ide.com/. ? 前端函数式攻城指南 VIII 完美了,Emacs cider mode8 是Clojure 编程不错的选择. 3.本书中的代码 书中的所有源码和运行方式都可以在本书的 Github 仓库9 中找到,书中几乎所 有的例子都以测试的形式完成. 4.反馈 如果你是开源贡献者,那么应该很习惯通过 Github Issue9 提交任何反馈,如果 是Pull Request,那就更好了.当然如果没有使用过 Github Issue 也没有关系,这里10 有非常详细的教程. 5.代码风格约定 本书的 JavaScript 代码都遵循 Airbnb JavaScript Style Guide11 中的 ES5 和React 的风格约定. 6.本书的组织结构 第1章将介绍 JavaScript 的基本函数式背景,简要地介绍为什么要关心函数式编程, 为什么说 Underscore 不够函数式, JavaScript 要作为完整的函数式语言还缺些什么? 第2章主要介绍 Clojure 的集合数据结构.这是个无聊但是又很重要的章节,可以说 函数式编程最基本、最重要的就是集合操作.本章会涉及如何操作集合、惰性求值 与惰性序列.

8 https://github.com/clojure-emacs/cider.

9 https://github.com/jcouyang/clojure-flavored-javascript/issues.

10 https://guides.github.com/features/issues/.

11 https://github.com/airbnb/javascript. 前言 IX 第3章在了解了持久性数据结构后,我们可能会产生疑惑,如果数据结构都是不可变 的,那么循环该怎么写呢?本章就是要解开各种使用不可变数据结构的疑惑,用这 些不可变数据结构可以切换一种编程的思维方式. 第4章Underscore 并不利于函数组合, 但是函数组合其实是函数式编程最重要的思想. 在这一章里面, 我会详细介绍为什么说 Underscore 错了, 而为什么要喜欢上柯里化, 以及 Clojure 1.7 新推出的 Transducer 又是如何帮助我们更容易组合出更高效的函数 的. 第5章我特别不情愿把 Macro 翻译成宏.宏特别容易让人以为是 C 语言里面那个 #define 宏,虽然都是宏,但其实那里跟这里说的 Macro 不是一个级别的.Macro 是Lisp 语言之所以特别的原因之一.本章我们就来看看到底什么是、为什么,以及如 何在 JavaScript 中使用 Macro. 第6章这里说的模式匹配包括两种: 一种是按位置或者 key 匹配集合, 取出相应数据. 另一种是 Haskell 风格的对函数参数的模式匹配.本章篇幅比较小,因为模式匹配 并不是 Clojure(也不是 JavaScript)的主要模式,尽管在一些有强大类型系统的函 数式语言(Scala、Haskell)中比较重要. 第7章Monad 这个范畴论里出来的神秘玩意,但你可能没有在意,其实这在前端世界 早都被玩腻了.本章将会介绍 Monad 和它的朋友们,并且将带你体验 JavaScript 的Promise,以及 Reactive 编程. ? 前端函数式攻城指南 X 第8章并发编程一直是令人头疼的编程方式,直到 Clojure 和Go 的出现,彻底改变了 我们并发编程的方式.而对于单线程的 JavaScript,基于事件循环的并发模型也一 直困扰着我们,到底能从 Clojure 学些什么,可以使我们的前端并发........

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题