数字版权声明 图灵社区的电子书没有采用专有客 户端,您可以在任意设备上,用自 己喜欢的浏览器和PDF阅读器进行 阅读。 但您购买的电子书仅供您个人使用, 未经授权,不得进行传播。 我们愿意相信读者具有这样的良知 和觉悟,与我们共同保护知识产权。 ! 如果购买者有侵权行为,我们可能 对该用户实施包括但不限于关闭该 帐号等维权措施,并可能追究法律 责任。 图灵程序设计丛书 函数式编程思维 Functional Thinking [美]Neal Ford 著 郭晓刚 译 Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo O’Reilly Media, Inc.授权人民邮电出版社出版 人民邮电出版社 北 京 内 容 提 要 本书脱离特定的语言特性,关注各种 OOP 语言的共同实践做法,展示如何通过函数式编程 解决问题。知名软件架构师 Neal Ford 展示了不同的编程范式,帮助我们完成从 Java 命令式编程 人员,到使用 Java、Clojure、Scala 的函数式编程人员的完美转变,建立对函数式语言的语法和语 义的良好理解。 本书适合 Java、Clojure、Scala 及其他想要提高工作效率、关注函数式编程的程序员阅读。 ◆ 著 [美] Neal Ford 译 郭晓刚 责任编辑 岳新欣 执行编辑 冯雪松 责任印制 杨林杰 ◆ 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn 北京 印刷 ◆ 开本:800×1000 1/16 印张:10.25 字数:242千字 印数:1 — 3 500册 著作权合同登记号 2015年 8 月第 1 版 2015年 8 月北京第 1次印刷 图字:01-2015-2577号 定价:49.00元 读者服务热线:(010)51095186转600 印装质量热线:(010)81055316 反盗版热线:(010)81055315 广告经营许可证:京崇工商广字第 0021 号 版权声明 © 2014 by Neal Ford. Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Posts & Telecom Press, 2015. Authorized translation of the English edition, 2015 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 英文原版由 O’Reilly Media, Inc. 出版,2014。 简体中文版由人民邮电出版社出版,2015。英文原版的翻译得到 O’Reilly Media, Inc. 的 授权。此简体中文版的出版和销售得到出版权和销售权的所有者——O’Reilly Media, Inc. 的许可。 版权所有,未得书面许可,本书的任何部分和全部不得以任何形式重制。 iii O’Reilly Media, Inc.介绍 O’Reilly Media 通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。 自 1978 年开始,O’Reilly 一直都是前沿发展的见证者和推动者。超级极客们正在开创 着未来,而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社 会对新科技的应用。作为技术社区中活跃的参与者,O’Reilly 的发展充满了对创新的 倡导、创造和发扬光大。 O’Reilly 为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组 织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 Make 杂志, 从而成为 DIY 革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。 O’Reilly 的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创 新产业的革命性思想。作为技术人士获取信息的选择,O’Reilly 现在还将先锋专家的 知识传递给普通的计算机用户。无论是通过书籍出版,在线服务或者面授课程,每一 项 O’Reilly 的产品都反映了公司不可动摇的理念——信息是激发创新的力量。 业界评论 “O’Reilly Radar 博客有口皆碑。” ——Wired “O’Reilly 凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。” ——Business 2.0 “O’Reilly Conference 是聚集关键思想领袖的绝对典范。” ——CRN “一本 O’Reilly 的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照 Yogi Berra 的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去 Tim 似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal iv 目录 译者序 ..................................................................................................................................................... ix 前言.......................................................................................................................................................... xi 第 1 章 为什么 .................................................................................................................................... 1 1.1 范式转变 ..................................................................................................................................... 2 1.2 跟上语言发展的潮流 ................................................................................................................. 4 1.3 把控制权让渡给语言 / 运行时 .................................................................................................. 4 1.4 简洁 ............................................................................................................................................. 5 第 2 章 转变思维 ................................................................................................................................ 9 2.1 普通的例子 ................................................................................................................................. 9 2.1.1 命令式解法 .................................................................................................................... 9 2.1.2 函数式解法 .................................................................................................................. 10 2.2 案例研究:完美数的分类问题 ............................................................................................... 15 2.2.1 完美数分类的命令式解法 .......................................................................................... 15 2.2.2 稍微向函数式靠拢的完美数分类解法 ...................................................................... 16 2.2.3 完美数分类的 Java 8 实现 .......................................................................................... 18 2.2.4 完美数分类的 Functional Java 实现 ........................................................................... 19 2.3 具有普遍意义的基本构造单元 .................................................
函数式编程思维
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
本文档由 user 于 2021-02-28 15:08:14上传分享