JS函数式编程指南 - (EPUB全文下载)

文件大小:1.48 mb。
文件格式:epub 格式。
书籍内容:

目錄
介紹 
第 1 章: 我们在做什么? 
介绍 
一个简单例子 
第 2 章: 一等公民的函数 
快速概览 
为何钟爱一等公民 
第 3 章: 纯函数的好处 
再次强调“纯” 
副作用可能包括... 
八年级数学 
追求“纯”的理由 
总结 
第 4 章: 柯里化(curry) 
不可或缺的 curry 
不仅仅是双关语/咖喱 
总结 
第 5 章: 代码组合(compose) 
函数饲养 
pointfree 
debug 
范畴学 
总结 
第 6章: 示例应用 
声明式代码 
一个函数式的 flickr 
有原则的重构 
总结 
第 7 章: Hindley-Milner 类型签名 
初识类型 
神秘的传奇故事 
缩小可能性范围 
自由定理 
总结 
第 8 章: 特百惠 
强大的容器 
第一个 functor 
薛定谔的 Maybe 
“纯”错误处理 
王老先生有作用... 
异步任务 
一点理论 
总结 
第 9 章: Monad 
pointed functor 
混合比喻 
chain 函数 
理论 
总结 
第 10 章: Applicative Functor 
应用 applicative functor 
瓶中之船 
协调于激励 
lift 
免费开瓶器 
定律 
总结 
This is the Simplified Chinese translation of
mostly-adequate-guide
, thank Professor
Franklin Risby
for his great work!
关于本书
这本书的主题是函数范式(functional paradigm),我们将使用 JavaScript 这个世界上最流行的函数式编程语言来讲述这一主题。有人可能会觉得选择 JavaScript 并不明智,因为当前的主流观点认为它是一门命令式(imperative)的语言,并不适合用来讲函数式。但我认为,这是学习函数式编程的最好方式,因为:
你很有可能在日常工作中使用它
这让你有机会在实际的编程过程中学以致用,而不是在空闲时间用一门深奥的函数式编程语言做一些玩具性质的项目。
你不必从头学起就能开始编写程序
在纯函数式编程语言中,你必须使用 monad 才能打印变量或者读取 DOM 节点。JavaScript 则简单得多,可以作弊走捷径,因为毕竟我们的目的是学写纯函数式代码。JavaScript 也更容易入门,因为它是一门混合范式的语言,你随时可以在感觉吃力的时候回退到原有的编程习惯上去。
这门语言完全有能力书写高级的函数式代码
只需借助一到两个微型类库,JavaScript 就能模拟 Scala 或 Haskell 这类语言的全部特性。虽然面向对象编程(Object-oriented programing)主导着业界,但很明显这种范式在 JavaScript 里非常笨拙,用起来就像在高速公路上露营或者穿着橡胶套鞋跳踢踏舞一样。我们不得不到处使用
 bind 
以免
 this 
不知不觉地变了,语言里没有类可以用(目前还没有),我们还发明了各种变通方法来应对忘记调用
 new 
关键字后的怪异行为,私有成员只能通过闭包(closure)才能实现,等等。对大多数人来说,函数式编程看起来更加自然。
以上说明,强类型的函数式语言毫无疑问将会成为本书所示范式的最佳试验场。JavaScript 是我们学习这种范式的一种手段,将它应用于什么地方则完全取决于你自己。幸运的是,所有的接口都是数学的,因而也是普适的。最终你会发现你习惯了 swiftz、scalaz、haskell 和 purescript,以及其他各种数学偏向的语言。
目录
第 1 部分
第 1 章: 我们在做什么?
介绍
一个简单例子
第 2 章: 一等公民的函数
快速概览
为何钟爱一等公民
第 3 章: 纯函数的好处
再次强调“纯”
副作用可能包括...
八年级数学
追求“纯”的理由
总结
第 4 章: 柯里化(curry)
不可或缺的 curry
不仅仅是双关语/咖喱
总结
第 5 章: 代码组合(compose)
函数饲养
pointfree
debug
范畴学
总结
第 6章: 示例应用
声明式代码
一个函数式的 flickr
有原则的重构
总结
第 2 部分
第 7 章: Hindley-Milner 类型签名
初识类型
神秘的传奇故事
缩小可能性范围
自由定理
总结
第 8 章: 特百惠
强大的容器
第一个 functor
薛定谔的 Maybe
“纯”错误处理
王老先生有作用...
异步任务
一点理论
总结
第 9 章: Monad
pointed functor
混合比喻
chain 函数
理论
总结
第 10 章: Applicative Functor
应用 applicative functor
瓶中之船
协调与激励
lift
免费开瓶器
定律
总结
未来计划
第 1 部分是基础知识。这是初版草稿,所以我会及时更正发现的的错误。欢迎提供帮助!
第 2 部分讲述类型类(type class),比如 functor 和 monad,最后会讲到到 traversable。我希望能塞进来一些 monad transformer 相关的知识,再写一个纯函数的应用。
第 3 部分将开始游走于编程实践与学院学究之间。我们将学习 comonad、f-algebra、free monad、yoneda 以及其他一些范畴学概念。
第 1 章:我们在做什么?
介绍
你好,我是 Franklin Risby 教授,很高兴认识你。接下来我们将共度一段时光了,因为我要教你一些函数式编程的知识。好了,关于我就介绍到这里,你怎么样?我希望你已经熟悉 JavaScript 语言了,关于面向对象也有一点点的经验了,而且自认为是一个合格的程序员。希望你没有昆虫学博士学位也能找到并杀死一些臭虫(bug)。
我并不假设你之前有任何函数式编程相 ............

书籍插图:
书籍《JS函数式编程指南》 - 插图1
书籍《JS函数式编程指南》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » JS函数式编程指南 - (EPUB全文下载)