Clojure程序设计 - (EPUB全文下载)

文件大小:0.73 mb。
文件格式:epub 格式。
书籍内容:

Clojure程序设计
【美】 Stuart Halloway Aaron Bedra 著
温瑞云 译
人民邮电出版社
北京
内容提要
Clojure是一种基于Java虚拟机的动态编程语言。它功能强大,支持函数式编程,简化了并发编程,并且能调用Java程序。正是这些优点,使其赢得了众多程序员的青睐。
本书是介绍Clojure编程语言和程序设计的经典之作。第 2版针对Clojure 1.3进行了全面的更新。全书共包括 10 章,分别介绍了 Clojure 概览和基本特性、序列和函数式编程、并发编程模型、协议和数据类型、宏、多重方法,以及Clojure对Java的调用。最后提供了一个完整了解Clojure应用开发全过程的实例。
本书适合有不同语言背景而想要学习和了解Clojure编程的程序员阅读。函数式程序员、Java和C#程序员、Lisp程序员,以及Perl、Python和Ruby程序员,都能够通过阅读本书得到不同程度的收获。
其他
献给Craig Bedra,我的父亲和导师。
是你让我懂得了通过探索进行学习的价值,
并且让我明白诸如魔法一类的事情是不存在的。
——Aaron
致谢
有许多人为本书那些精彩的部分做出了贡献。残留的问题和错误完全是由我们造成的。
感谢Relevance和Clojure/core这两个了不起的团队,是你们创造性的氛围,让好点子得以茁壮成长。
感谢Clojure邮件列表①
里友善的人们,是你们给予了我们莫大的帮助和鼓励。
注释:① http://groups.google.com/group/clojure。
感谢 Pragmatic Bookshelf的所有人。尤其是我们的编辑Michael Swaine,为我们有些狂妄的交付时间表提供了很好的建议。感谢Dave Thomas和Andy Hunt,你们创建了一个有趣的技术书籍编写平台,它令书籍作者热情满怀。
感谢所有向本书勘误表页面②
投递建议的人们。
注释:② http://www.pragprog.com/titles/shcloj2/errata。
感谢技术评审们的意见和建议,你们是Kevin Beam、Ola Bini、Sean Corfield、Fred Daoud、Steven Huwig、Tibor Simic、David Sletten、Venkat Subramaniam和Stefan Turalski。
特别要感谢David Liebke,是你编写了第 6章“协议和数据类型”的最初版本。如果不是因为你用全新的思路提供了一份奇妙的指南,这本书不会成为现在的样子。
感谢Rich Hickey,是你创造了Clojure这种杰出的编程语言,并培育出围绕着它的社区。
感谢我的妻子 Joey,我的女儿Hattie、Harper和Mabel Faire。是你们让我每天都如沐阳光。
——Stuart
感谢我的妻子,Erin,是你给予了我无尽的爱与鼓励。
——Aaron
第1版序
我们正在被复杂性淹没。其中绝大部分是偶然复杂性——并非源自问题本身,而是源自于我们为了解决问题而采用的方法。面向对象编程看起来容易,但生产出来的程序,往往会成为一张由可变对象交织而成的复杂巨网。单单是因为调用了一个对象上的方法,就可能会引起遍及整个对象关系图的一连串变化。在这种情况下,想要理解何时将会发生何事,事物是如何进入某种状态的,或是为修正某个bug而试图让对象回到特定状态,都变得极为复杂。而且一旦混入了并发问题,事情很快就会变得无法收拾。我们对程序使用了仿制对象(mock objects)和测试套件(test suites),但依然收效甚微。这不得不让我们对手头的工具和编程模型产生质疑。
函数式编程提供了别的选择。通过强调纯函数——传入和返回的都是不可变值(immutable value),副作用的存在成为了特例,而不再是常态。在多核架构中,我们面临的并发问题日益增加。因此,这种特性只会变得更加重要。Clojure的设计目标,就是要让函数式编程更加平易近人,且兼备商业软件开发者所需的实用性。首先要能运行在像Java虚拟机这样可靠的基础设施之上,还要能支持现有客户在Java框架及库方面的投资。Clojure非常清楚满足上述两点的必要性,以及这么做能带来的巨大实用性。
这是一种面向专业开发者(Stuart自己就是)的编程语言。Stuart的这本书之所以让人如此激动,源于他对Clojure的把握。很明显,他对Clojure瞄准的痛处有着充分的体验,这也增强了本书务实的态度。阅读本书,就像是一次充满激情的旅行,以实际应用为基础,逐步介绍Clojure的关键特性——有可能是一些全新的概念。我希望它能鼓舞你运用Clojure去编写软件,然后,回过头来你会说:“我不仅仅完成了工作,而且没想到采用的方法竟然如此健壮和简单,最棒的是,编写Clojure代码实在是太有乐趣了!”。
——Rich Hickey
Clojure之父
第2版序
自本书第1版发行之后,很多东西发生了改变。是的,Clojure语言本身得以增强,例如协议(protocol)和记录(record)的引入。然而,最有意义的是,Clojure已应用于各种不同的领域。人们正在使用Clojure建立新系统,分析大规模数据集,以及处理通信、金融、互联网和数据库方面的工作。同时,一个大型的、乐于助人的社区已经围绕着Clojure成长起来。随之而来,涌现出了大量的程序库。这些库的出现格外令人激动,不仅仅在于它们提供的功能设施;还在于它们当中最优秀的那些库,欣然接受了Clojure倡导的方法和机制,从而在简洁性和互操作性方面达到了全新的高度。
Stuart和Aaron确保在第2版中覆盖了语言的新增功能,并尝试着借助一些来自社区的库,来演示这些功能是如何运作的。本书仍然提供了令人振奋的Clojure简介,我希望它能激发你加入我们的社区,并最终对Clojure生态系统做出贡献。
——Rich Hickey
C ............

书籍插图:
书籍《Clojure程序设计》 - 插图1
书籍《Clojure程序设计》 - 插图2

以上为书籍内容预览,如需阅读全文内容请下载EPUB源文件,祝您阅读愉快。

版权声明:书云(openelib.org)是世界上最大的在线非盈利图书馆之一,致力于让每个人都能便捷地了解我们的文明。我们尊重著作者的知识产权,如您认为书云侵犯了您的合法权益,请参考版权保护声明,通过邮件openelib@outlook.com联系我们,我们将及时处理您的合理请求。 数研咨询 流芳阁 研报之家 AI应用导航 研报之家
书云 Open E-Library » Clojure程序设计 - (EPUB全文下载)