前端函數式攻城指南

前端函數式攻城指南 pdf epub mobi txt 电子书 下载 2025

歐陽繼超
圖書標籤:
想要找书就要到 求知書站
立刻按 ctrl+D收藏本页
你会得到大惊喜!!
第1章 函数式JavaScript 1
1.1 JavaScript也是函数式语言吗 1
1.1.1 编程范式 1
1.1.2 JavaScript的函数式支持 3
1.2 作为函数式语言,JavaScript还差些什么 10
1.2.1 不可变数据结构 11
1.2.2 惰性求值 11
1.2.3 函数组合 12
1.2.4 尾递归优化 13
1.3 Underscore你错了 14
1.3.1 跟大家都不一样的 map 函数 14
1.3.2 ClojureScript 16
1.3.3 Mori 17
1.4 小结 18
第2章 集合 19
2.1 集合的使用 20
2.1.1 向量(vector) 20
2.1.2 Map 23
2.1.3 函数组合子 24
2.2 持久性数据结构 27
2.2.1 向量的持久性数据结构 28
2.2.2 最后一片叶子不完整 31
2.2.3 所有叶子完整且叶子个数不大于完全树的叶子个数 32
2.2.4 所有叶子完整且叶子个数大于完全树的叶子个数 34
2.3 不可变性 35
2.3.1 致命魔术 36
2.3.2 引用透明性 38
2.3.3 函数式React 40
2.3.4 线程不安全 42
2.4 惰性序列 44
2.4.1 改良奥利奥吃法 44
2.4.2 惰性求值与及早求值 46
2.4.3 惰性求值的实现 48
2.5 小结 50
第3章 递归 51
3.1 不可变性与递归 51
3.1.1 真的需要循环吗 52
3.1.2 递归还是循环 54
3.2 柯里悖论 55
3.2.1 Y组合子 57
3.2.2 栈是多么容易爆 60
3.3 尾递归优化 62
3.4 蹦跳乐园(Trampoline) 64
3.4.1 有穷状态机(DFA) 65
3.4.2 Trampoline 67
3.5 小结 69
第4章 函数组合 70
4.1 Underscore到底做错了什么 70
4.1.1 自由(Free)变量与约束(Bound)变量 72
4.1.2 闭包 74
4.2 柯里化有什么用 75
4.3 Transducer 78
4.3.1 Reducer 79
4.3.2 来看看更好更快的解法 79
4.3.3 Reducer 80
4.3.4 Reducible 81
4.3.5 Transducer详解 82
4.3.6 跟柯里化有什么区别 83
4.4 组合与管道 84
4.4.1 管道(Pipeline) 84
4.4.2 组合与管道 86
4.4.3 管道函数 87
4.5 小结 87
第5章 Macro宏 89
5.1 什么是REPL 89
5.1.1 宏扩展器(Macro Expander) 90
5.1.2 那么前端怎么办 92
5.2 为什么要语法糖 93
5.2.1 只是为了语法漂亮吗 94
5.3 Sweet.js 94
5.3.1 Rule Macro 95
5.3.2 Case Macro 97
5.4 Infix Macro 和 Operator 104
5.4.1 Infix Macro 104
5.4.2 自定义操作符 105
5.5 小结 106
第6章 模式匹配 107
6.1 Destructure 107
6.1.1 对象 109
6.1.2 数组 109
6.1.3 函数 109
6.2 Arity 函数 110
6.3 Fizz Buzz 111
6.3.1 字面匹配(Literal Matching) 111
6.3.2 绑定 113
6.3.3 Vector与Map匹配 113
6.3.4 Guard 114
6.3.5 Sparkler 114
6.4 代数数据类型(ADT) 116
6.5 小结 118
第7章 Monadic编程 119
7.1 链式调用 119
7.1.1 Promise 120
7.1.2 高阶Promise 122
7.2 Monad 123
7.2.1 函子(Functor) 123
7.2.2 Applicative Functor 126
7.2.3 含幺半群(Monoid) 130
7.2.4 Monad就是容器界的管道 132
7.2.5 Monad就是自函子范畴上的一个幺半群 136
7.3 走钢丝 139
7.3.1 用Monad表示薛定谔猫 139
7.3.2 皮尔斯走钢丝 140
7.4 Monad在JavaScript中的应用 143
7.4.1 Promise版本的走钢丝 144
7.4.2 When 144
7.5 Reactive编程 146
7.5.1 流(Stream) 146
7.5.2 Functor 147
7.5.3 Applicative 147
7.5.4 Monad 148
7.5.5 一个“简单”的Reactive实例 149
7.6 小结 153
第8章 并发编程 154
8.1 什么是并发 154
8.1.1 异步与多线程 155
8.1.2 JavaScript的并发模型 157
8.2 通信顺序进程(CSP) 160
8.3 使用Generator实现CSP 162
8.3.1 Generator 163
8.3.2 Go Block 163
8.3.3 timeout 164
8.3.4 take <! 165
8.3.5 put >! 165
8.3.6 JavaScript CSP版本的例子 166
8.4 实战 CSP 168
8.4.1 使用移植的core.async 168
8.4.2 使用ES7中的异步函数 169
8.4.3 try catch 170
8.5 小结 173
参考资料 174
· · · · · · (收起)

具体描述

在後端,函數式語言層齣不窮。在前端,函數式最後的邊界也已經被漸漸打破。Scala的Scala.js、Clojure的ClojureScript都試圖同構移嚮前端。然而,原生JavaScript其實也可以通過豐富的庫讓前端的函數式編程一樣的舒適和優雅。

《前端函數式攻城指南》涵蓋瞭大部分函數式編程思想,包括JavaScript的函數式支持,Clojure風格的集閤、遞歸、函數組閤、宏、模式匹配、實用的Monads,以及前端的並發編程。

《前端函數式攻城指南》適閤想要瞭解函數式編程的JavaScript程序員或者想學習JavaScript的函數式程序員閱讀。

用户评价

评分

##我觉得这本书在解释 Monad 上面还是说得挺好的

评分

##相当于mostly adequate guide,图画很有趣,但是拼写错误也太多了,希望能有个勘误表

评分

##作者不具备基本的写作素养。书籍无法阅读。看了一半。。。就这样吧

评分

##很棒的一本书,但看之前最好有一些基础知识作为铺垫,以及要有足够的兴趣,否则看起来可能会比较吃力。

评分

##想表达一些想法,但是水平不够,没法做到深入浅出

评分

##作者写的意犹未尽,他的技术确实牛b,也尝试写的很亲民,但是没点卵用。多看看阮一峰的写作风格

评分

##作者写的意犹未尽,他的技术确实牛b,也尝试写的很亲民,但是没点卵用。多看看阮一峰的写作风格

评分

##作者不具备基本的写作素养。书籍无法阅读。看了一半。。。就这样吧

评分

##作者写的意犹未尽,他的技术确实牛b,也尝试写的很亲民,但是没点卵用。多看看阮一峰的写作风格

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 tushu.tinynews.org All Rights Reserved. 求知書站 版权所有