新書推薦:
《
汉字学理与小学汉字教学
》
售價:NT$
408.0
《
即将到来的能源战争
》
售價:NT$
407.0
《
时刻人文·臆造南洋:马来半岛的神鬼人兽
》
售價:NT$
296.0
《
时刻人文·信用的承诺与风险:一个被遗忘的犹太金融传说与欧洲商业社会的形成
》
售價:NT$
469.0
《
同与不同:50个中国孤独症孩子的故事
》
售價:NT$
301.0
《
开宝九年
》
售價:NT$
250.0
《
论僭政:色诺芬《希耶罗》义疏(含施特劳斯与科耶夫通信集)
》
售價:NT$
500.0
《
传播与流动:移民、手机与集装箱(新闻与传播学译丛·学术前沿系列)
》
售價:NT$
500.0
編輯推薦:
本书基于新版,提供大量优良的样本代码,可让读者在快速入门、提高的同时,并不遗漏必要的初级概念。抛开Clojure不谈,这也是一本值得推荐的编程语言书籍。
或许你现在还不能充分理解Clojure和函数式编程的精髓,或许目前的日常工作还用不到Clojure,但这绝对是一个值得你重视的主题,本书据此精心设计。作者在这一领域有足够的发言权,有能力引导读者从下载安装开始学起,直到掌握用起进行web开发。
《Clojure编程》写作精良,平易近人,具有非常良好的“信噪比”,可谓最实用而全面的Clojure图书,对
Clojure的状态、标识及并发理念,函数式编程以及Clojure生态系统都有完整阐述。如果有人问你“我应该读什么书上的Clojure“,你可以坚定地指向它!
內容簡介:
Clojure是一种实用的通用语言,它是传奇语言LISP的方言,可与Ruby、Python等动态语言相媲美,更以无缝Java库、服务,以及拥有JVM系统得天独厚的资源优势而胜出。本书既可以用来熟悉Clojure基础知识与常见例子,也可了解其相关的实践领域与话题,更可以看到这一JVM平台上的LISP如何帮助消除不必要的复杂性,为大家在编程实践中解决最具挑战性的问题开辟新的选择——更具灵活性,更适于Web编程和操作数据库,可以应付更为苛刻的应用程序安全要求,更有效的并发性和并行处理、数据分析能力,以及在未来云环境下的更大的发展潜力。
關於作者:
Chas Emerick是软件公司Snowtide
informatics的创始人。自2008年以来,致力于Clojure语言本身以及一些开源项目的开发;长期在cemerick.com撰写Clojure、软件开发实践、创业精神,及其他主题的文章。
Brian
Carper是一位心理学研究领域的专业程序员,用Clojure从事数据分析与web开发。他开发过一个把Clojure代码转化为CSS代码的编译器以及一个操作关系型数据库的类库,经常在briancarper.net上发表Clojure文章。
Christophe
Grand是一个独立顾问,现居法国里昂。他主要从事Clojure培训与编码,参与了Clojure语言的开发,撰写过Enlive和
Moustache类库,也是Counterclockwise——Clojure IDE for
Eclipse的贡献者,经常在clj-me.cgrand.net上发表有关Clojure的文章。
目錄 :
第1章 进入Clojure仙境
为什么要选择Clojure?
获取Clojure
Clojure REPL
不!括号真的不会让你瞎了眼
表达式、操作符、语法以及优先级
同像性
Clojure Reader
命名空间
符号解析
特殊形式
小结
这只是开始
第1部分
第2章 函数式编程
所谓函数式编程,到底意味着什么?
谈谈值的重要性
作为头等公民的函数以及高阶函数
函数(功能)的组合
纯函数
现实生活中的函数式编程
第3章 集合类与数据结构
抽象优于实现
访问集合元素的简洁方式
数据结构的类型
不可变性和持久性
元数据
用Clojure的集合来小试牛刀
总结
第4章 多线程和并发
计算在时间和空间内的转换
简单的并行化
状态和标识
Clojure的引用类型
并发操作的分类
原子类型(Atom)
通知和约束
ref
var
Agent
使用Java的并发原语
总结
第2部分
第5 章 宏
宏到底是什么?
编写你的第一个宏
调试宏
语法
什么时候使用宏
宏卫生
宏的常见用法和模式
隐藏参数:env 和 form
深入 - 和 -
总结
第6章 数据类型和协议
协议(Protocol)
扩展已有的类型
定义你自己的类型
实现协议
协议自省
协议函数分派的边界场景
自己实现一个set
总结
第7章 多重方法
多重方法基础
通往层级之路
层级
真正实现多重!
还有几件事
最后的思考
第3 部分
第8章 Clojure项目的组织与构建
项目布局
构建
最后的思考
第9章 Java及JVM互操作
JVM是Clojure的基础
Java类、方法和字段的使用
便利的互操作工具
异常与错误处理
为了效率进行类型提示
定义类、实现接口
在Java里使用Clojure
乐于合作的伙伴
第10章 面向REPL的编程
交互式开发
工具集
在REPL里调试、监测和打补丁
重定义结构的限制
小结
第4部分
第11章 数字与数学
Clojure的数字
Clojure数学
相等与等值
优化数值效率
用Clojure可视化芒德布罗集
第12章 设计模式
依赖注入
策略模式
责任链
面向方面的编程
最后的思考
第13章 测试
不可变值与纯函数
clojure.test
HTML DSL的成长
依赖断言
第14章 使用关系数据库
clojure.java.jdbc
Korma
Hibernate
最后的思考
第15章 使用非关系型数据库
安装CouchDB和Clutch
基本的CRUD操作
视图
_changes: 把CouchDB滥用做消息队列
可随意点选的消息队列
最后的思考
第16章 Clojure与Web
Clojure栈
基石:Ring
用Compojure路由请求
使用模板
最后的思考
第17章 布署Clojure Web应用程序
Java与Clojure Web架构
在本地运行Web应用
Web应用程序布署
超越简单Web应用程序布署
第5部分
第18章 明智地选择Clojure类型定义形式
第19章 在工作场所引进Clojure
只是事实…
强调生产效率
强调社群
审慎
第20章 下一步?
(dissoc Clojure ‘JVM)
4Clojure
Overtone
core.logic
Pallet
Avout
Heroku上的Clojure
关于作者
內容試閱 :
Clojure编程
为什么选择Clojure?因为这个函数式编程语言不仅让你可以利用已有的Java类库、服务以及其它JVM平台资源,而且它能够跟其它动态语言如Ruby、Python相匹敌。有了本书的详细介绍,你可以通过一些示例来学习Clojure的基本原理,而这些示例会跟你已经熟悉的语言有关,示例所涉及的领域以及主题也是你每天工作都会接触到的。
我们通过一些日常的任务来探索Clojure的灵活性,比如web编程、操作最流行的数据库等等。你会很快看到这门语言是如何帮你消除编程实践中的不必要的复杂性,并且给我们提供了解决困难问题的新的思路
-- 包括多线程编程。
* 使用Clojure不会浪费你在Java平台上的已有投资
* 理解Clojure作为JVM上的一门高效LISP方言的优势
* 学习函数式编程如何帮忙消除常见的问题和错误
* 通过久经考验的工具使得并发多线程编程更可追踪、更可靠
* 消除代码对于冗长而复杂的设计模式的依赖
* 利用宏、数据、协议以及多重方法来构建抽象
* 部署大型web应用到成百上千个云节点
Chas Emerickcemerick.com
Snowtide Informatics公司创始人,参与开发了Clojure语言本身以及很多的开源项目。
Brian Carperbriancarper.net
心理学研究领域的职业程序员,创建了一个把Clojure代码编译成CSS代码的编译器以及一个操作关系型数据库的类库。
Christophe Grandclj-me.cgrand.net
活跃于法国里昂附近的独立咨询师,参与开发了Clojure语言;创建了Enlive和Moustache这两个类库。