Clojure编程实战(原书第2版)

Clojure编程实战(原书第2版) pdf epub mobi txt 电子书 下载 2025

出版者:机械工业出版社
作者:阿米特·拉索尔(Amit Rathore)
出品人:
页数:293
译者:姚军
出版时间:2018-9
价格:79元
装帧:平装
isbn号码:9787111609384
丛书系列:华章程序员书库
图书标签:
  • Clojure
  • 计算机
  • 编程
  • 软件开发
  • Lisp
  • 软件设计
  • 计算机科学
  • 程序设计
  • Clojure
  • 函数式编程
  • 编程语言
  • 开发
  • 数据结构
  • 并发
  • 实践
  • 代码
  • 实战
  • Lisp
想要找书就要到 小美书屋
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书是一本优秀的Clojure入门指南。书中从抽象的理论到实际的案例,对Clojure语言进行了全面、系统的阐释,可以帮助你快速掌握编写大规模Clojure程序所必需的特性、概念和技术。

本书共11章,第1章概要介绍Clojure语言及其三大支柱;第2章介绍REPL(读取-求值-打印循环,这是Clojure的命令行解释程序),帮助你开始编写Clojure代码;第3章介绍Clojure更独特的功能,包括元数据、异常处理、高阶函数、两组作用域规则(词法和动态)、组织代码的命名空间等;第4章讨论三种基本的多态性和使用多重方法时各种多态性在Clojure中的表现;第5章介绍Clojure与JVM的结合;第6章解释Clojure的状态管理和并行方法,以及四种基本的并行原语;第7章介绍Clojure的宏系统;第8章深入介绍函数式编程范式,以及高阶函数的利用方法;第9章处理表达问题;第10章说明如何将编写测试驱动代码的过程与Clojure REPL相结合,显著提升效率;第11章介绍高级宏和DSL。

作者简介

[美] 阿米特·拉索尔(Amit Rathore) 弗朗西斯·阿维拉(Francis Avila) 著:阿米特·拉索尔(Amit Rathore)有12年构建大规模、数据密集型应用的开发经验,目前正在为一个高分布式、高负载、实时的大数据系统开发Clojure代码。

弗朗西斯·阿维拉(Francis Avila) Breeze的软件开发工程师,有7年Web前端和后端开发经验。

目录信息

译者序
第1版赞誉
第2版序言
第1版序言
关于本书
致谢
第1章 Clojure简介1
1.1 Clojure的概念以及采用的原因1
1.1.1 Clojure:现代化的Lisp语言2
1.1.2 Clojure:务实的函数式编程3
1.1.3 JVM之上的Clojure5
1.2 语言基础知识6
1.2.1 Lisp语法6
1.2.2 括号8
1.3 宿主互操作性:JVM速成教程9
1.3.1 Java类型、类和对象10
1.3.2 点(.)和new运算符11
1.3.3 线程和并发性12
1.4 小结12
第2章 Clojure要素:数据结构和函数14
2.1 在REPL上编码14
2.1.1 Clojure REPL15
2.1.2 “Hello, world!”16
2.1.3 用doc、find-doc和apropos查找文档17
2.1.4 Clojure语法的另外几个要点19
2.2 Clojure数据结构21
2.2.1 nil、真值和假值21
2.2.2 字符和字符串22
2.2.3 Clojure数值22
2.2.4 符号和关键字23
2.2.5 列表25
2.2.6 向量26
2.2.7 映射28
2.2.8 序列30
2.3 程序结构31
2.3.1 函数31
2.3.2 let形式32
2.3.3 do的副作用33
2.3.4 读取器宏34
2.4 程序流程35
2.4.1 条件35
2.4.2 逻辑函数37
2.4.3 函数式循环40
2.4.4 串行宏45
2.5 小结49
第3章 Clojure构件50
3.1 元数据51
3.1.1 Java类型提示53
3.1.2 Java原始类型和数组类型54
3.2 Java异常:try和throw55
3.3 函数56
3.3.1 定义函数57
3.3.2 调用函数63
3.3.3 高阶函数64
3.3.4 编写高阶函数67
3.3.5 匿名函数69
3.3.6 关键字和符号70
3.4 作用域73
3.4.1 变量和绑定73
3.4.2 重温let形式78
3.4.3 词法闭包79
3.5 命名空间79
3.5.1 ns宏80
3.5.2 使用命名空间82
3.6 解构83
3.6.1 向量绑定84
3.6.2 映射绑定85
3.7 读取器字面量87
3.8 小结89
第4章 多重方法多态90
4.1 多态及其类型90
4.1.1 参数化多态91
4.1.2 随意多态91
4.1.3 子类多态93
4.2 用多重方法实现多态94
4.2.1 不使用多重方法时的情况94
4.2.2 使用多重方法实现随意多态95
4.2.3 多分派98
4.2.4 使用多重方法实现子类多态99
4.3 小结105
第5章 探索Clojure和Java互操作106
5.1 从Clojure中调用Java107
5.1.1 将Java类导入Clojure107
5.1.2 创建实例108
5.1.3 访问方法和域108
5.1.4 宏和句点特殊形式109
5.1.5 有助于使用Java的Clojure宏112
5.1.6 实现接口和扩展类114
5.2 将Clojure代码编译为Java字节码115
5.2.1 示例:两个计算器的故事116
5.2.2 用gen-class和gen-interface创建Java类和接口118
5.3 从Java调用Clojure122
5.4 小结123
第6章 状态和并发的世界124
6.1 状态存在的问题125
6.1.1 共享状态的常见问题125
6.1.2 传统解决方案125
6.2 标识与值的分离127
6.2.1 不可变值128
6.2.2 对象和时间129
6.2.3 不可变性和并发性130
6.3 Clojure的方法130
6.3.1 不可变性与性能131
6.3.2 托管引用132
6.4 引用132
6.4.1 创建引用132
6.4.2 引用突变133
6.4.3 软件事务内存135
6.5 代理137
6.5.1 创建代理137
6.5.2 代理突变137
6.5.3 使用代理139
6.5.4 STM事务中的副作用141
6.6 原子141
6.6.1 创建原子142
6.6.2 原子突变142
6.7 变量143
6.7.1 创建变量和根绑定143
6.7.2 变量绑定144
6.8 状态及其统一访问模型145
6.8.1 创建145
6.8.2 读取145
6.8.3 突变145
6.8.4 事务146
6.8.5 监视突变146
6.9 决定使用哪种托管引用类别147
6.10 future和promise148
6.10.1 future148
6.10.2 promise149
6.11 小结150
第7章 通过宏发展Clojure151
7.1 宏的基础知识152
7.1.1 文本替换152
7.1.2 unless示例153
7.1.3 宏模板156
7.1.4 回顾:为什么使用宏160
7.2 Clojure内部的宏161
7.2.1 comment161
7.2.2 declare161
7.2.3 defonce162
7.2.4 and162
7.2.5 time163
7.3 编写自己的宏163
7.3.1 infix164
7.3.2 randomly164
7.3.3 defwebmethod165
7.3.4 defnn166
7.3.5 assert-true167
7.4 小结169
第8章 函数式编程深入研究170
8.1 使用高阶函数170
8.1.1 收集函数结果171
8.1.2 对一系列事物进行归纳173
8.1.3 过滤一系列事物174
8.2 部分应用175
8.2.1 函数适配176
8.2.2 定义函数179
8.3 闭包180
8.3.1 自由变量与闭包180
8.3.2 延迟计算与闭包181
8.3.3 闭包与对象182
8.3.4 一个Clojure对象系统184
8.4 小结196
第9章 协议、记录和类型197
9.1 表达式问题197
9.1.1 建立示例场景198
9.1.2 对表达式问题的仔细观察和一些潜在的解决方案201
9.1.3 Clojure多重方法解决方案202
9.2 研究表达式问题的运算端204
9.2.1 def-modus-operandi204
9.2.2 detail-modus-operandi205
9.2.3 跟踪你的操作方法205
9.2.4 解决方案的错误处理和故障点211
9.3 用协议研究表达式问题的数据类型方面211
9.3.1 defprotocol与extend-protocol212
9.3.2 用defrecord、deftype和reify定义数据类型217
9.4 小结222
第10章 测试驱动开发及其他223
10.1 TDD入门:操纵字符串中的日期223
10.1.1 第一个断言224
10.1.2 month-from和year-from226
10.1.3 as-string227
10.1.4 递增和递减228
10.1.5 无情地重构230
10.2 通过模拟和打桩改善测试231
10.2.1 示例:费用查找器231
10.2.2 打桩232
10.2.3 模拟234
10.2.4 模拟与桩的对比235
10.2.5 管理打桩和模拟状态238
10.3 组织测试239
10.3.1 testing宏240
10.3.2 are宏240
10.4 小结241
第11章 更多的宏和DSL242
11.1 对宏的快速回顾242
11.2 指代宏244
11.2.1 指代式if244
11.2.2 thread-it宏246
11.3 将计算转移到编译时249
11.3.1 示例:不使用宏的循环加密249
11.3.2 让编译器更努力地工作252
11.4 生成宏的宏254
11.4.1 示例模板254
11.4.2 实现make-synonym255
11.4.3 使用宏生成宏的原因258
11.5 领域特定语言258
11.5.1 DSL驱动设计258
11.5.2 用户分类260
11.6 小结270
附录A 安装Clojure271
结  语275
· · · · · · (收起)

读后感

评分

评分

评分

评分

评分

用户评价

评分

翻译得不错,读起来很舒服

评分

翻译得不错,读起来很舒服

评分

翻译得不错,读起来很舒服

评分

Lisp和JVM结合的胜利✌Lisp已死,Lisp万岁!

评分

翻译得不错,读起来很舒服

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美书屋 版权所有