logo
分类于: 编程语言 计算机基础

简介

Clojure程序设计

Clojure程序设计 7.6分

资源最后更新于 2020-03-29 03:06:56

作者:〔美〕Stuart Halloway 〔美〕Aaron Bedra

译者:温瑞云

出版社:出版社人民邮电出版社

出版日期:2013-04

ISBN:9787115308474

文件格式: pdf

标签: 计算机 编程 程序设计 Clojure

简介· · · · · ·

《Clojure程序设计》是介绍Clojure编程语言和程序设计的经典之作。第2版针对Clojure 1.3进行了全面的更新。全书共包括10章,分别介绍了Clojure概览和基本特性、序列和函数式编程、并发编程模型、协议和数据类型、宏、多重方法,以及Clojure对Java的调用。最后提供了一个完整了解Clojure应用开发全过程的实例。《Clojure程序设计》适合有不同语言背景而想要学习和了解Clojure编程的程序员阅读。函数式程序员、Java和C#程序员、Lisp程序员,以及Perl、Python和Ruby程序员,都能够通过阅读本书得到不同程度的收获。Stuart Halloway Clojure/core成员、Relevance公司CTO。 Aaron Bedra Clojure/core成员,在担任Relevance公司开发者期间,他成为一名技术领袖、演讲家和作家。他对Clojure语言及其支持库贡献颇多,同时也是Clojure社区中的活跃分子。Aaron牵头开发了一些商业的Clojure项目。目前他在Groupon工作。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. Clojure程序设计
  2. 内容提要
  3. 致谢
  4. 第1版序
  5. 第2版序
  6. 前言
  7. 第1章 启航
  8. 1.1 为什么是Clojure
  9. 1.1.1 Clojure非常优雅
  10. 1.1.2 Clojure是Lisp的再度崛起
  11. 1.1.3 为什么是Lisp
  12. 1.1.4 它是Lisp,但括号少了
  13. 1.1.5 Clojure是函数式语言
  14. 1.1.6 Clojure简化了并发编程
  15. 1.1.7 Clojure与Java虚拟机彼此亲密无间
  16. 1.2 Clojure编程快速入门
  17. 1.2.1 使用REPL
  18. 1.2.2 特殊变量
  19. 1.2.3 添加共享状态
  20. 1.3 探索Clojure的程序库
  21. 1.3.1 require和use
  22. 1.3.2 查找文档
  23. 1.4 小结
  24. 第2章 探索Clojure
  25. 2.1 形式
  26. 2.1.1 使用数值类型
  27. 2.1.2 符号
  28. 2.1.3 字符串与字符
  29. 2.1.4 布尔值与nil
  30. 2.1.5 映射表、关键字和记录
  31. 2.2 读取器宏
  32. 2.3 函数
  33. 2.3.1 匿名函数
  34. 2.3.2 何时使用匿名函数
  35. 2.4 变量、绑定和命名空间
  36. 2.4.1 绑定
  37. 2.4.2 解构
  38. 2.4.3 命名空间
  39. 2.5 调用Java
  40. 2.5.1 访问构造函数、方法和字段
  41. 2.5.2 Javadoc
  42. 2.6 流程控制
  43. 2.6.1 分支结构与if
  44. 2.6.2 用do引入副作用
  45. 2.6.3 循环与loop/recur
  46. 2.7 我的for循环哪儿去了
  47. 2.8 元数据
  48. 2.9 小结
  49. 第3章 一切皆序列
  50. 3.1 一切皆序列
  51. 3.2 使用序列库
  52. 3.2.1 创建序列
  53. 3.2.2 过滤序列
  54. 3.2.3 序列谓词
  55. 3.2.4 序列转换
  56. 3.3 惰性和无限序列
  57. 3.4 Java亦可序化
  58. 3.4.1 序化Java容器
  59. 3.4.2 序化正则表达式
  60. 3.4.3 序化文件系统
  61. 3.4.4 序化流
  62. 3.4.5 序化XML
  63. 3.5 调用特定于结构的函数
  64. 3.5.1 列表函数
  65. 3.5.2 向量函数
  66. 3.5.3 映射表函数
  67. 3.5.4 集合函数
  68. 3.6 小结
  69. 第4章 函数式编程
  70. 4.1 函数式编程理念
  71. 4.1.1 纯函数
  72. 4.1.2 持久性数据结构
  73. 4.1.3 惰性和递归
  74. 4.1.4 引用透明性
  75. 4.1.5 FP的优势
  76. 4.1.6 6条规则
  77. 4.2 怎样偷个懒
  78. 4.2.1 尾递归
  79. 4.2.2 自递归与recur
  80. 4.2.3 惰性序列
  81. 4.2.4 聊聊变现
  82. 4.2.5 丢弃头元素
  83. 4.3 懒上加懒
  84. 4.4 再议递归
  85. 4.4.1 转换为自递归
  86. 4.4.2 采用Trampolining技术
  87. 4.4.3 用惰性化替代递归
  88. 4.4.4 用快存为递归抄条近路
  89. 4.5 小结
  90. 第5章 状态
  91. 5.1 并发、并行和锁定
  92. 5.2 引用与软事务内存
  93. 5.2.1 ref-set
  94. 5.2.2 事务的属性
  95. 5.2.3 alter
  96. 5.2.4 STM的工作原理:MVCC
  97. 5.2.5 commute
  98. 5.2.6 alter优先
  99. 5.2.7 为引用添加验证
  100. 5.3 使用原子进行非协同、同步的更新
  101. 5.4 使用代理进行异步更新
  102. 5.4.1 代理的验证与错误处理
  103. 5.4.2 在事务中包含代理
  104. 5.4.3 统一的更新模型
  105. 5.5 用变量管理线程内状态
  106. 5.5.1 远距离作用
  107. 5.5.2 用于Java回调API
  108. 5.6 Clojure贪吃蛇
  109. 5.6.1 函数式模型
  110. 5.6.2 使用STM建立可变模型
  111. 5.6.3 贪吃蛇的GUI
  112. 5.6.4 没有引用的贪吃蛇
  113. 5.7 小结
  114. 第6章 协议和数据类型
  115. 6.1 针对抽象编程
  116. 6.2 接口
  117. 6.3 协议
  118. 6.4 数据类型
  119. 6.5 记录
  120. 6.6 具体化
  121. 6.7 小结
  122. 第7章 宏
  123. 7.1 何时使用宏
  124. 7.2 编写流程控制宏
  125. 7.2.1 特殊形式、设计模式和宏
  126. 7.2.2 宏展开
  127. 7.2.3 when与when-not
  128. 7.3 让宏更加简单
  129. 7.3.1 语法引述、解引述和解引述拼接
  130. 7.3.2 在宏内部创建名称
  131. 7.4 宏的分类
  132. 7.4.1 有条件的求值
  133. 7.4.2 创建变量
  134. 7.4.3 Java互操作
  135. 7.4.4 延迟求值
  136. 7.4.5 对求值进行包装
  137. 7.4.6 避免Lambda表达式
  138. 7.5 小结
  139. 第8章 多重方法
  140. 8.1 没有多重方法的日子
  141. 8.2 定义多重方法
  142. 8.2.1 调度是继承感知的
  143. 8.2.2 多重方法的默认值
  144. 8.3 调度不简单
  145. 8.4 创建特设分类法
  146. 8.5 何时应该使用多重方法
  147. 8.5.1 Inspector
  148. 8.5.2 clojure.test
  149. 8.5.3 反例
  150. 8.6 小结
  151. 第9章 极尽Java之所能
  152. 9.1 异常处理
  153. 9.1.1 保持简单的异常处理
  154. 9.1.2 清理资源
  155. 9.1.3 响应异常
  156. 9.2 与整数搏斗
  157. 9.3 性能优化
  158. 9.3.1 使用基本类型提升性能
  159. 9.3.2 添加类型提示
  160. 9.4 在Clojure中创建Java类
  161. 9.4.1 创建Java代理
  162. 9.4.2 使用Java容器
  163. 9.5 真实世界的例子
  164. 9.5.1 真正的持续循环
  165. 9.5.2 日志
  166. 9.5.3 配置
  167. 9.6 小结
  168. 第10章 搭建应用
  169. 10.1 为电码译员游戏计分
  170. 10.2 测试计分器
  171. 10.2.1 手工构造输入
  172. 10.2.2 运行测试
  173. 10.2.3 验证输出
  174. 10.2.4 回归测试
  175. 10.3 test.generative
  176. 10.3.1 生成数据
  177. 10.3.2 程序化验证
  178. 10.3.3 defspec
  179. 10.3.4 运行测试
  180. 10.3.5 规格执行失败时
  181. 10.3.6 计分函数的产生式测试
  182. 10.4 创建用户界面
  183. 10.4.1 该是时候处理状态了
  184. 10.4.2 玩家界面
  185. 10.5 部署代码
  186. 10.5.1 Procfile
  187. 10.5.2 Heroku库
  188. 10.5.3 Git
  189. 10.5.4 安置你的应用
  190. 10.5.5 部署
  191. 10.6 小结
  192. 附录 编辑器
  193. 参考书目