
是20来自13年人民邮电360百科出版社出版的图书。
- 书名 Clojure程序设计
- 类别 计算机与互联网,程序语言与软件开发
- 出版社 人民邮电出版社
- 出版时间 2013年03月15日
- 定价 49 元
Clojure是一种基于Java虚拟机的动态编程语言。它功能强大,支持函数式编程,简化了停欢定粒来香愿情娘落财并发编程,并且能调用Java程已红为全序。正是这些优点,使其赢得了众多程序员的青睐。
《Clojure程序设计》是介绍Clojure编程语言和程序设计的经典之作。第2版针对Clojure 1.3进行了全面的更新。全书共包括10章,分别介绍了Clojure概览来自和基本特性、序列和函数式编程、并发编程模型、协议和数据类型、宏、多重方法,以及Clojure对Java的调用。最后提供了一个完整了解Clojure应用开发全过程的实例。
360百科 《Clojure程序设计》适合有不同语言背景而想要学习和了解Clojure编程的程序员阅读。函数式程序员、Java和C#程序员、Lisp程序员,以及Perl、Python和Ruby程序员,都能够通过阅读《Clo春式去教条面于黑jure程序设计》得到不同程度的收获。
图书目录
- Clojure程序设计
- 内容提要
- 致谢
- 官第1版序
- 第2版序
- 前?
- 第1章 启航
- 1.1 为什么是Clojure
- 1.1.1 Clojure非常优雅
- 1.1.2 Cloj力粮就试压程带ure是Lisp的再度崛起
- 1.1.3 为什么是L先isp
- 1.1.4 它是Lisp,但括号少了
- 1.1.5 Clojure是函数式语?
- 1.威确众多激1.6 Clojure简化了并发编程
- 1.1.7 Clojure与Java虚拟机彼此亲密无间
- 1.2 Clojure核围立且钱陈担难九体编程快速入门
- 1.2.1 使用REPL
- 1.2.2 特殊变量
- 1.2.3 添加共享状态
- 1.3 探索Clojure的程序库
- 1.3.1 requ重么脱岁心耐题ire和use
- 1.3.2 查找文档
- 1.4 小结
- 第2章 探索Clojure
- 2.1 形式
- 2.审未星盟留操1.1 使用数值类型
- 2.1.2 符号
- 2.1.3 字符串与字符
- 2.1.4 布尔值与nil
- 2.1.5 映短个认诉白曲团射表、关键字和记录
- 2.2 读取余器宏
- 2.3 函数
- 2.3.1 匿名函数
- 2.3实打急英充谁.2 何时使用匿名函数
- 2.4 变量、绑定和命名空间
- 2.4.1 绑定
- 2.4.2 解构
- 2.4.3 命名空间
- 2.5 调用Java
- 2.5.1 访问构造愿德下育函数、方法和字段
- 2.5.2 Javadoc
- 2.6 流程控制
- 2.6.1 分支结构与if
- 2.6.2 用do引入副作用
- 2.6.3 循环与loop/recur
- 2.7 我的for循环哪儿去了
- 2.8 元数据
- 2.9 小结
- 第3章 一切皆序列
- 3.1 一切皆序列
- 3.2 使用序列库
- 3.2.1 创建序列
- 3.2.2 那调其速样毫秋高过滤序列
- 3.2.3 序列谓词
- 3.2.4 序列转换
- 3.3 惰性和无限序列
- 3.4 Java亦可序化
- 3.4.1 序化Java容器
- 3.4.2 序化正则表达式
- 3.4.3 序化文件系统
- 3.4.4 序化流
- 3.4.5 序化XML
- 3.5 调用特定于结构的函数
- 3.5.1 列表函数
- 3.5.2 向量函数
- 3.5.3 映射表函数
- 3.5.4 集合函数
- 3.6 小结
- 第4章 青皮包和孙民单溶设根函数式编程
- 4.1 函数式编程理乡四念
- 4.1.1 纯函数
- 4.1.2 持农菜假改封团久性数据结构
- 4.1.3 惰性和递归
- 4.1.4 引用透明性
- 4.1.5 FP的优势
- 4.1.6 6条规则
- 4.2 怎样偷个懒
- 4.2.1 尾递归
- 4.2.2 自递归与recur
- 4.2.3 惰性序列
- 4.2.4 聊聊变现
- 4.2.5 丢弃头元素
- 4.3 懒上加懒
- 4.4 再议递归
- 4.4.1 转换为自递归
- 4.4.2 采用Trampolining技术
- 4.4.3 用惰性化替代递归
- 4.4.4 用快存为递归抄条近路
- 4.5 小结
- 第5章 状态
- 5.1 并发、并行和锁定
- 5.2 引用与软事务内存
- 5.2.1 ref-set
- 5.2.2 事务的属性
- 5.2.3 alter
- 5.2.4 STM的工作原理:MVCC
- 5.2.5 commute
- 5.2.6 alter优先
- 5.2.7 为引用添加验证
- 5.3 使用原子进行非协同、同步的更新
- 5.4 使用代理进行异步更新
- 5.4.1 代理的验证与错误处理
- 5.4.2 在事务中包含代理
- 5.4.3 统一的更新模型
- 5.5 用变量管理线程内状态
- 5.5.1 远距离作用
- 5.5.2 用于Java回调API
- 5.6 Clojure贪吃蛇
- 5.6.1 函数式模型
- 5.6.2 使用STM建立可变模型
- 5.6.3 贪吃蛇的GUI
- 5.6.4 没有引用的贪吃蛇
- 5.7 小结
- 第6章 协议和数据类型
- 6.1 针对抽象编程
- 6.2 接口
- 6.3 协议
- 6.4 数据类型
- 6.5 记录
- 6.6 具体化
- 6.7 小结
- 第7章 宏
- 7.1 何时使用宏
- 7.2 编写流程控制宏
- 7.2.1 特殊形式、设计模式和宏
- 7.2.2 宏展?
- 7.2.3 when与when-not
- 7.3 让宏更加简单
- 7.3.1 语法引述、解引述和解引述拼接
- 7.3.2 在宏内部创建名称
- 7.4 宏的分类
- 7.4.1 有条件的求值
- 7.4.2 创建变量
- 7.4.3 Java互操作
- 7.4.4 延迟求值
- 7.4.5 对求值进行包装
- 7.4.6 避免Lambda表达式
- 7.5 小结
- 第8章 多重方法
- 8.1 没有多重方法的日子
- 8.2 定义多重方法
- 8.2.1 调度是继承感知的
- 8.2.2 多重方法的默认值
- 8.3 调度不简单
- 8.4 创建特设分类法
- 8.5 何时应该使用多重方法
- 8.5.1 Inspector
- 8.5.2 clojure.test
- 8.5.3 反例
- 8.6 小结
- 第9章 极尽Java之所能
- 9.1 异常处理
- 9.1.1 保持简单的异常处理
- 9.1.2 清理资源
- 9.1.3 响应异常
- 9.2 与整数搏斗
- 9.3 性能优化
- 9.3.1 使用基本类型提升性能
- 9.3.2 添加类型提示
- 9.4 在Clojure中创建Java类
- 9.4.1 创建Java代理
- 9.4.2 使用Java容器
- 9.5 真实世界的例子
- 9.5.1 真正的持续循环
- 9.5.2 日志
- 9.5.3 配置
- 9.6 小结
- 第10章 搭建应用
- 10.1 为电码译员游戏计分
- 10.2 测试计分器
- 10.2.1 手工构造输入
- 10.2.2 运行测试
- 10.2.3 验证输出
- 10.2.4 回归测试
- 10.3 test.generative
- 10.3.1 生成数据
- 10.3.2 程序化验证
- 10.3.3 defspec
- 10.3.4 运行测试
- 10.3.5 规格执行失败时
- 10.3.6 计分函数的产生式测试
- 10.4 创建用户界面
- 10.4.1 该是时候处理状态了
- 10.4.2 玩家界面
- 10.5 部署代码
- 10.5.1 Procfile
- 10.5.2 Heroku库
- 10.5.3 Git
- 10.5.4 安置你的应用
- 10.5.5 部署
- 10.6 小结
- 附录 编辑器
- 参考书目