您好,欢迎来到聚文网。 登录 免费注册
前端函数式攻城指南

前端函数式攻城指南

  • 字数: 187千字
  • 装帧: 平装
  • 出版社: 电子工业出版社
  • 作者: 欧阳继超 著
  • 出版日期: 2016-10-01
  • 商品条码: 9787121297243
  • 版次: 1
  • 开本: 16开
  • 页数: 175
  • 出版年份: 2016
定价:¥59 销售价:登录后查看价格  ¥{{selectedSku?.salePrice}} 
库存: {{selectedSku?.stock}} 库存充足
{{item.title}}:
{{its.name}}
精选
内容简介
在后端,函数式语言层出不穷。在前端,函数式很后的边界也已经被渐渐打破。Scala的Scala.js、Clojure的ClojureScript都试图同构移向前端。然而,原生JavaScript其实也可以通过丰富的库让前端的函数式编程一样的舒适和优雅。本书涵盖了大部分函数式编程思想,包括JavaScript的函数式支持,Clojure风格的集合、递归、函数组合、宏、模式匹配、实用的Monads,以及前端的并发编程。本书适合想要了解函数式编程的JavaScript程序员或者想学习JavaScript的函数式程序员阅读。
作者简介
欧阳继超,ThoughtWorks不错咨询师,活跃开源贡献者,热爱编程与写作,译有《函数式JavaScript)》以及若干开源书籍与文档。
目录
第1章函数式JavaScript
1.1JavaScript也是函数式语言吗
1.1.1编程范式
1.1.2JavaScript的函数式支持
1.2作为函数式语言,JavaScript还差些什么
1.2.1不可变数据结构
1.2.2惰性求值
1.2.3函数组合
1.2.4尾递归优化
1.3Underscore你错了
1.3.1跟大家都不一样的 map 函数
1.3.2ClojureScript
1.3.3Mori
1.4小结
第2章集合
2.1集合的使用
2.1.1向量(vector)
2.1.2Map
2.1.3函数组合子
2.2持久性数据结构
2.2.1向量的持久性数据结构
2.2.2最后一片叶子不完整
2.2.3所有叶子完整且叶子个数不大于完全树的叶子个数
2.2.4所有叶子完整且叶子个数大于完全树的叶子个数
2.3不可变性
2.3.1致命魔术
2.3.2引用透明性
2.3.3函数式React
2.3.4线程不安全
2.4惰性序列
2.4.1改良奥利奥吃法
2.4.2惰性求值与及早求值
2.4.3惰性求值的实现
2.5小结
第3章递归
3.1不可变性与递归
3.1.1真的需要循环吗
3.1.2递归还是循环
3.2柯里悖论
3.2.1Y组合子
3.2.2栈是多么容易爆
3.3尾递归优化
3.4蹦跳乐园(Trampoline)
3.4.1有穷状态机(DFA)
3.4.2Trampoline
3.5小结
第4章函数组合
4.1Underscore到底做错了什么
4.1.1自由(Free)变量与约束(Bound)变量
4.1.2闭包
4.2柯里化有什么用
4.3Transducer
4.3.1Reducer
4.3.2来看看更好更快的解法
4.3.3Reducer
4.3.4Reducible
4.3.5Transducer详解
4.3.6跟柯里化有什么区别
4.4组合与管道
4.4.1管道(Pipeline)
4.4.2组合与管道
4.4.3管道函数
4.5小结
第5章Macro宏
5.1什么是REPL
5.1.1宏扩展器(Macro Expander)
5.1.2那么前端怎么办
5.2为什么要语法糖
5.2.1只是为了语法漂亮吗
5.3Sweet.js
5.3.1Rule Macro
5.3.2Case Macro
5.4Infix Macro 和 Operator
5.4.1Infix Macro
5.4.2自定义操作符
5.5小结
第6章模式匹配
6.1Destructure
6.1.1对象
6.1.2数组
6.1.3函数
6.2Arity 函数
6.3Fizz Buzz
6.3.1字面匹配(Literal Matching)
6.3.2绑定
6.3.3Vector与Map匹配
6.3.4Guard
6.3.5Sparkler
6.4代数数据类型(ADT)
6.5小结
第7章Monadic编程
7.1链式调用
7.1.1Promise
7.1.2高阶Promise
7.2Monad
7.2.1函子(Functor)
7.2.2Applicative Functor
7.2.3含幺半群(Monoid)
7.2.4Monad就是容器界的管道
7.2.5Monad就是自函子范畴上的一个幺半群
7.3走钢丝
7.3.1用Monad表示薛定谔猫
7.3.2皮尔斯走钢丝
7.4Monad在JavaScript中的应用
7.4.1Promise版本的走钢丝
7.4.2When
7.5Reactive编程
7.5.1流(Stream)
7.5.2Functor
7.5.3Applicative
7.5.4Monad
7.5.5一个“简单”的Reactive实例
7.6小结
第8章并发编程
8.1什么是并发
8.1.1异步与多线程
8.1.2JavaScript的并发模型
8.2通信顺序进程(CSP)
8.3使用Generator实现CSP
8.3.1Generator
8.3.2Go Block
8.3.3timeout
8.3.4take <!
8.3.5put >!
8.3.6JavaScript CSP版本的例子
8.4实战 CSP
8.4.1使用移植的core.async
8.4.2使用ES7中的异步函数
8.4.3try catch
8.5小结
参考资料

蜀ICP备2024047804号

Copyright 版权所有 © jvwen.com 聚文网