万本电子书0元读

万本电子书0元读

顶部广告

Clojure编程乐趣(第2版)电子书

如果曾亲眼见过数十行的Java或Ruby浓缩成寥寥数行Clojure代码,你便不难理解为何本书作者称Clojure 是一种“有乐趣的语言”。Clojure 是一种运行于JVM的Lisp方言。它将脚本语言出色的特性同产品环境强大的特性(持久化数据结构和干净的多线程)相结合, 这些都是发工业强度应用所需要的。本书深针对Clojure 1.6 全面更新。本书超越了语法的层面,它不只是展示如何编写流畅而惯用的Clojure 代码,我们将学到函数式的程序设计方式,掌握让Clojure 优雅而高效的技术。本书举重若轻地带我们软件发的一些困难领域,如并发、互操作和性能。它为我们展现了以Clojure 之道思考问题的美妙之处。

售       价:¥

纸质售价:¥61.40购买纸书

81人正在读 | 2人评论 6.2

作       者:[美] Michael Fogus 福格斯 Chris Houser 豪泽

出  版  社:人民邮电出版社

出版时间:2017-04-01

字       数:45.6万

所属分类: 科技 > 计算机/网络 > 程序设计

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(3条)
  • 读书简介
  • 目录
  • 累计评论(3条)
这既不是一本Clojure初学指南,也不是一本Clojure的编程操作手册。本书通过对Clojure详尽地探究,讲述函数式的程序设计方式,帮助读者理解和体会Clojure编程的乐趣,而发出优美的软件。 全书分为6个部分共17章。第1部分是基础,包括第1~3章,从Clojure背后的思想始,介绍了Clojure的基础知识,并带领读者初步尝试Clojure编程。第2部分是第4章和第5章,介绍了Clojure的各种数据类型。第3部分是第6章和第7章,介绍了函数式编程的特性。第4部分是第8章~11章,分别介绍了宏、组合数据域代码、Clojure对Java的调用,以及并发编程等较为高级的话题。第5部分为第12章和第13章,探讨了Clojure的性能问题及其带给我们的思考。第6部分为第14~17章,介绍了面向数据编程、性能、思考程序以及Clojure的思考方式。 本书适合想要转向函数式语言或行并发编程的程序员阅读,对JVM平台编程感兴趣的程序员,想要学习中高级的Java程序以及Clojure的读者,均能够从中获益。<br/>【推荐语】<br/>如果曾亲眼见过数十行的Java或Ruby浓缩成寥寥数行Clojure代码,你便不难理解为何本书作者称Clojure 是一种“有乐趣的语言”。Clojure 是一种运行于JVM的Lisp方言。它将脚本语言出色的特性同产品环境强大的特性(持久化数据结构和干净的多线程)相结合, 这些都是发工业强度应用所需要的。本书深针对Clojure 1.6 全面更新。本书超越了语法的层面,它不只是展示如何编写流畅而惯用的Clojure 代码,我们将学到函数式的程序设计方式,掌握让Clojure 优雅而高效的技术。本书举重若轻地带我们软件发的一些困难领域,如并发、互操作和性能。它为我们展现了以Clojure 之道思考问题的美妙之处。 本书包括以下内容: ●使用ClojureScript 构建Web 应用; ●掌握函数式编程技术; ●简化并发; ●介绍Clojure 1.6。 如果你有一些使用Clojure和Lisp的经验,那么本书很适合你阅读。 包含了一系列丰富的编程概念。 ——William E. Byrd 和Daniel P.Friedman The Reasoned Schemer 的作者 你会学得飞快! ——Steve Yegge,Google Clojure改变了我们思考编程的方式, 而本书改变了我们对Clojure的认识。 ——Cristofer Weber 对于新手和有经验的程序员来说,本 书中的示例都很清晰。 ——Jasper Lievisse Adriaanse 阅读本书充满了乐趣,我不忍释卷。 ——Heather Campbell<br/>【作者】<br/>Michael Fogus 和Chris Houser 是Clojure 和ClojureScript 编程语言的贡献者,而是各种Clojure 库和语言特性的编写者。<br/>
目录展开

内容提要

对第1版的赞誉

第2版序

第1版序

致谢

前言

本书简介

为何学习Clojure?

谁该阅读本书

路线图

数据类型

函数式编程

大规模设计

宿主共生

杂项考量

代码约定

阅读Clojure代码

获取Clojure

下载示例代码

作者在线(Author Online)

作者简介

Clojure简介

第1部分 基础

第1章 Clojure哲学

1.1 Clojure之道

1.2 为何(又一种)Lisp

1.3 函数式编程

1.4 Clojure为何不是面向对象的

1.5 小结

第2章 Clojure疾风式教程

2.1 基本数据类型

2.2 组合起来:集合

2.3 付诸实现: 函数

2.4 var

2.5 函数

2.6 局部量、循环和block

2.7 防止发生:quote

2.8 与Java互操作

2.9 异常环境

2.10 命名空间

2.11 小结

第3章 小试牛刀

3.1 真值

3.2 小心翼翼nil双关

3.3 解构

3.4 用REPL做试验

3.5 小结

第2部分 数据类型

第4章 标量

4.1 理解精度

4.2 有理数

4.3 使用关键字的时机

4.4 符号解析

4.5 正则表达式——第二个问题

4.6 小结

第5章 组合数据类型

5.1 持久化、序列和复杂度

5.2 vector:创建和使用其各种变体

5.3 list:Clojure代码form的数据结构

5.4 如何使用持久化队列

5.5 持久化set

5.6 思考map

5.7 知识汇总:在序列里查找某项的位置

5.8 小结

第3部分 函数式编程

第6章 惰性与不变性

6.1 关于不变性:按照自己的方式去使用

6.2 设计一个持久化玩具

6.3 惰性

6.4 知识汇总:一个惰性的快速排序程序

6.5 小结

第7章 函数式编程

7.1 各种形式的函数

7.2 闭包

7.3 递归思考

7.4 知识汇总:A*寻路

7.5 小结

第4部分 大规模设计

第8章 宏

8.1 数据即代码即数据

8.2 定义控制结构

8.3 组合form的宏

8.4 使用宏改变form

8.5 使用宏控制符号解析时间

8.6 使用宏管理资源

8.7 知识汇总:返回函数的宏

8.8 小结

第9章 组合数据与代码

9.1 命名空间

9.2 以通用设计模式探索Clojure多重方法

9.3 类型、协议和记录

9.4 知识汇总:国际象棋移动的流畅构建器

9.5 小结

第10章 变化和并发

10.1 使用Ref的时机

10.2 利用refs重构

10.3 使用Agent的时机

10.4 使用Atom的时机

10.5 使用lock的时机

10.6 var和动态绑定

10.7 小结

第11章 并行

11.1 使用future的时机

11.2 使用promise的时机

11.3 并行

11.4 reduce/fold

11.5 小结

第5部分 宿主共生关系

第12章 Java.next

12.1 使用proxy动态生成对象

12.2 Clojure gen-class和GUI程序设计

12.3 Clojure同Java数组的关系

12.4 所有Clojure函数都实现……

12.5 在Java API里使用Clojure数据结构

12.6 definterface

12.7 慎用异常

12.8 小结

第13章 ClojureScript

13.1 实现VS接口

13.2 编译器内部:分析和发布

13.3 编译和运行

13.4 小结

第6部分 杂项考量

第14章 面向数据编程

14.1 代码是代码,数据是数据

14.2 数据就是数据

14.3 数据就是代码

14.4 代码就是数据,也是代码

14.5 小结

第15章 性能

15.1 类型提示

15.2 暂态(transient)

15.3 分块序列

15.4 记忆

15.5 理解强制转型(coercion)

15.6 可缩小的

15.7 小结

第16章 思考程序

16.1 搜索问题

16.2 统一思考数据

16.3 关于core.logic

16.4 约束

16.5 小结

第17章 Clojure改变我们的思考方式

17.1 DSL

17.2 测试

17.3 缺乏设计模式

17.4 错误处理和调试

17.5 珍重

附录 资源

综合性资源

网络资源

欢迎来到异步社区!

异步社区的来历

社区里都有什么?

灵活优惠的购书

社区里还可以做什么?

加入异步

累计评论(3条) 3个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部