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

简介

七周七语言:理解多种编程范型

七周七语言:理解多种编程范型 8.1分

资源最后更新于 2020-05-25 22:58:58

作者:〔美〕Bruce A.Tate

译者:巨成戴玮白明

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

出版日期:2012-05

ISBN:9787115276117

文件格式: pdf

标签: 计算机 编程 编程语言 程序设计 Programming 编程范式

简介· · · · · ·

从计算机发展史早期的Cobol、Fortran到后来的C、Java,编程语言的家族不断壮大。除了这些广为人知的语言外,还涌现了Erlang、Ruby等后起之秀,它们虽被喻为小众语言,但因其独特性也吸引了为数不少的追随者。Bruce A. Tate是软件行业的一名老兵,他有一个宏伟目标:用一本书的篇幅切中要害地探索七种不同的语言。本书就是他的成果。书中介绍了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell这七种语言,关注每一门语言的精髓和特性,重点解决如下问题:这门语言的类型模型是什么,编程范式是什么,如何与其交互,有哪些决策构造和核心数据结构,有哪些独特的核心特性。在这个飞速发展的信息时代,程序员仅仅掌握甚至精通一门语言是远远不够的。了解多门语言蕴涵的思维方式,在编码中互相借鉴,再挑出一两门对自己口味的语言深入学习,这些已经成为在软件行业中安身立命之本。从这个意义上说,每个程序员都应该看看这本《七周七语言》。作者简介:Bruce A. Tate RapidRed公司总裁,该公司主要为Ruby轻量级开发提供咨询。他曾任职于IBM公司,并担任过多家公司的客户解决方案总监和CTO。著作有十余本,包括荣获Jolt大奖的Better, Faster, Lighter Java。译者简介:戴玮 80后宅男,中科院自动化所在读博士,热爱机器学习与计算机视觉。编程喜C#、Ruby、Haskell而厌Java。白明 Neusoft某开发部技术总监,拥有多年电信级软件开发经验;资深C程序员,对Common Lisp、Python等小众语言也有涉猎;对开源软件有着浓厚的兴趣,曾先后贡献了lcut、cbehave等多个工具框架;喜好写博客http://bigwhite.blogbus.com),耕耘七年,仍孜孜不倦。巨成 万方数据数字出版事业部架构师,.NET开发人员。
直接下载

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

已收: 表示已经收藏

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

目录

  1. 序 言
  2. 致 谢
  3. 第1章 简 介
  4. 1.1 不走寻常路
  5. 1.2 语言
  6. 1.3 谁应该买这本书
  7. 1.3.1 学会如何学习
  8. 1.3.2 乱世英雄
  9. 1.4 谁不应该买这本书
  10. 1.4.1 超越语法
  11. 1.4.2 不是安装指南
  12. 1.4.3 不是编程参考
  13. 1.4.4 严格督促
  14. 1.5 最后一击
  15. 第2章 Ruby
  16. 2.1 Ruby简史
  17. 2.2 第一天:找个保姆
  18. 2.2.1 快速起步
  19. 2.2.2 从命令行执行Ruby
  20. 2.2.3 Ruby的编程模型
  21. 2.2.4 判断
  22. 2.2.5 鸭子类型
  23. 2.2.6 第一天我们学到了什么
  24. 2.2.7 第一天自习
  25. 2.3 第二天:从天而降
  26. 2.3.1 定义函数
  27. 2.3.2 数组
  28. 2.3.3 散列表
  29. 2.3.4 代码块和yield
  30. 2.3.5 定义类
  31. 2.3.6 编写Mixin
  32. 2.3.7 模块、可枚举和集合
  33. 2.3.8 第二天我们学到了什么
  34. 2.3.9 第二天自习
  35. 2.4 第三天:重大改变
  36. 2.4.1 开放类
  37. 2.4.2 使用method_missing
  38. 2.4.3 模块
  39. 2.4.4 第三天我们学到了什么
  40. 2.4.5 第三天自习
  41. 2.5 趁热打铁
  42. 2.5.1 核心优势
  43. 2.5.2 不足之处
  44. 2.5.3 最后思考
  45. 第3章 Io
  46. 3.1 Io简介
  47. 3.2 第一天:逃学吧,轻松一下
  48. 3.2.1 开场白
  49. 3.2.2 对象、原型和继承
  50. 3.2.3 方法
  51. 3.2.4 列表和映射
  52. 3.2.5 true、false、nil以及单例
  53. 3.2.6 Steve Dekorte访谈录
  54. 3.2.7 第一天我们学到了什么
  55. 3.2.8 第一天自习
  56. 3.3 第二天:香肠大王
  57. 3.3.1 条件和循环
  58. 3.3.2 运算符
  59. 3.3.3 消息
  60. 3.3.4 反射
  61. 3.3.5 第二天我们学到了什么
  62. 3.3.6 第二天自习
  63. 3.4 第三天:花车游行和各种奇妙经历
  64. 3.4.1 领域特定语言
  65. 3.4.2 Io的method_missing
  66. 3.4.3 并发
  67. 3.4.4 第三天我们学到了什么
  68. 3.4.5 第三天自习
  69. 3.5 趁热打铁
  70. 3.5.1 核心优势
  71. 3.5.2 不足之处
  72. 3.5.3 最后思考
  73. 第4章 Prolog
  74. 4.1 关于Prolog
  75. 4.2 第一天:一名优秀的司机
  76. 4.2.1 基本概况
  77. 4.2.2 基本推论和变量
  78. 4.2.3 填空
  79. 4.2.4 合一,第一部分
  80. 4.2.5 实际应用中的Prolog
  81. 4.2.6 第一天我们学到了什么
  82. 4.2.7 第一天自习
  83. 4.3 第二天:离瓦普纳法官开演还有15分钟
  84. 4.3.1 递归
  85. 4.3.2 列表和元组
  86. 4.3.3 列表与数学运算
  87. 4.3.4 在两个方向上使用规则
  88. 4.3.5 第二天我们学到了什么
  89. 4.3.6 第二天自习
  90. 4.4 第三天:维加斯的爆发
  91. 4.4.1 解决数独问题
  92. 4.4.2 八皇后问题
  93. 4.4.3 第三天我们学到了什么
  94. 4.4.4 第三天自习
  95. 4.5 趁热打铁
  96. 4.5.1 核心优势
  97. 4.5.2 不足之处
  98. 4.5.3 最后思考
  99. 第5章 Scala
  100. 5.1 关于Scala
  101. 5.1.1 与Java的密切关系
  102. 5.1.2 没有盲目崇拜
  103. 5.1.3 Martin Odersky访谈录
  104. 5.1.4 函数式编程与并发
  105. 5.2 第一天:山丘上的城堡
  106. 5.2.1 Scala 类型
  107. 5.2.2 表达式与条件
  108. 5.2.3 循环
  109. 5.2.4 范围与元组
  110. 5.2.5 Scala中的类
  111. 5.2.6 扩展类
  112. 5.2.7 第一天我们学到了什么
  113. 5.2.8 第一天自习
  114. 5.3 第二天:修剪灌木丛和其他新把戏
  115. 5.3.1 对比var和val
  116. 5.3.2 集合
  117. 5.3.3 集合与函数
  118. 5.3.4 第二天我们都学到了什么
  119. 5.3.5 第二天自习
  120. 5.4 第三天:剪断绒毛
  121. 5.4.1 XML
  122. 5.4.2 模式匹配
  123. 5.4.3 并发
  124. 5.4.4 实际中的并发
  125. 5.4.5 第三天我们学到了什么
  126. 5.4.6 第三天自习
  127. 5.5 趁热打铁
  128. 5.5.1 核心优势
  129. 5.5.2 不足之处
  130. 5.5.3 最后思考
  131. 第6章 Erlang
  132. 6.1 Erlang简介
  133. 6.1.1 为并发量身打造
  134. 6.1.2 Joe Armstrong博士访谈录
  135. 6.2 第一天:以常人面目出现
  136. 6.2.1 新手上路
  137. 6.2.2 注释、变量和表达式
  138. 6.2.3 原子、列表和元组
  139. 6.2.4 模式匹配
  140. 6.2.5 函数
  141. 6.2.6 第一天我们学到了什么
  142. 6.2.7 第一天自习
  143. 6.3 第二天:改变结构
  144. 6.3.1 控制结构
  145. 6.3.2 匿名函数
  146. 6.3.3 列表和高阶函数
  147. 6.3.4 列表的一些高级概念
  148. 6.3.5 第二天我们学到了什么
  149. 6.3.6 第二天自习
  150. 6.4 第三天:红药丸
  151. 6.4.1 基本并发原语
  152. 6.4.2 同步消息
  153. 6.4.3 链接进程以获得可靠性
  154. 6.4.4 第三天我们学到了什么
  155. 6.4.5 第三天自习
  156. 6.5 趁热打铁
  157. 6.5.1 核心优势
  158. 6.5.2 不足之处
  159. 6.5.3 最后思考
  160. 第7章 Clojure
  161. 7.1 Clojure入门
  162. 7.1.1 一切皆Lisp
  163. 7.1.2 JVM
  164. 7.1.3 为并发更新
  165. 7.2 第一天:训练Luke
  166. 7.2.1 调用基本函数
  167. 7.2.2 字符串和字符
  168. 7.2.3 布尔值和表达式
  169. 7.2.4 列表、映射表、集合以及向量
  170. 7.2.5 定义函数
  171. 7.2.6 绑定
  172. 7.2.7 匿名函数
  173. 7.2.8 Rich Hickey访谈录
  174. 7.2.9 第一天我们学到了什么
  175. 7.2.10 第一天自习
  176. 7.3 第二天:Yoda与原力
  177. 7.3.1 用loop和recur递归
  178. 7.3.2 序列
  179. 7.3.3 延迟计算
  180. 7.3.4 defrecord和protocol
  181. 7.3.5 宏
  182. 7.3.6 第二天我们学到了什么
  183. 7.3.7 第二天自习
  184. 7.4 第三天:一瞥魔鬼
  185. 7.4.1 引用和事务内存
  186. 7.4.2 使用原子
  187. 7.4.3 使用代理
  188. 7.4.4 future
  189. 7.4.5 还差什么
  190. 7.4.6 第三天我们学到了什么
  191. 7.4.7 第三天自习
  192. 7.5 趁热打铁
  193. 7.5.1 Lisp悖论
  194. 7.5.2 核心优势
  195. 7.5.3 不足之处
  196. 7.5.4 最后思考
  197. 第8章 Haskell
  198. 8.1 Haskell简介
  199. 8.2 第一天:逻辑
  200. 8.2.1 表达式和基本类型
  201. 8.2.2 函数
  202. 8.2.3 元组和列表
  203. 8.2.4 生成列表
  204. 8.2.5 Philip Wadler访谈录
  205. 8.2.6 第一天我们学到了什么
  206. 8.2.7 第一天自习
  207. 8.3 第二天:Spock的超凡力量
  208. 8.3.1 高阶函数
  209. 8.3.2 偏应用函数和柯里化
  210. 8.3.3 惰性求值
  211. 8.3.4 Simon Peyton-Jones访谈录
  212. 8.3.5 第二天我们学到了什么
  213. 8.3.6 第二天自习
  214. 8.4 第三天:心灵融合
  215. 8.4.1 类与类型
  216. 8.4.2 monad
  217. 8.4.3 第三天我们学到了什么
  218. 8.4.4 第三天自习
  219. 8.5 趁热打铁
  220. 8.5.1 核心优势
  221. 8.5.2 不足之处
  222. 8.5.3 最后思考
  223. 第9章 落幕时分
  224. 9.1 编程模型
  225. 9.1.1 面向对象(Ruby、Scala)
  226. 9.1.2 原型编程(Io)
  227. 9.1.3 约束—逻辑编程(Prolog)
  228. 9.1.4 函数式编程(Scala、Erlang、Clojure、Haskell)
  229. 9.1.5 范型演进之路
  230. 9.2 并发
  231. 9.2.1 控制可变状态
  232. 9.2.2 Io、Erlang和Scala中的actor
  233. 9.2.3 future
  234. 9.2.4 事务型内存
  235. 9.3 编程结构
  236. 9.3.1 列表解析
  237. 9.3.2 monad
  238. 9.3.3 匹配
  239. 9.3.4 合一
  240. 9.4 发现自己的旋律
  241. 附录 参考书目
  242. 版权声明