×
Scala函数式编程

Scala函数式编程

1星价 ¥33.8 (4.9折)
2星价¥33.8 定价¥69.0

温馨提示:5折以下图书主要为出版社尾货,大部分为全新(有塑封/无塑封),个别图书品相8-9成新、切口有划线标记、光盘等附件不全详细品相说明>>

暂无评论
图文详情
  • ISBN:9787121283307
  • 装帧:暂无
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:245
  • 出版时间:2016-04-01
  • 条形码:9787121283307 ; 978-7-121-28330-7

本书特色

函数式编程(fp)是一种软件开发风格,它注重不依赖于编程状态的函数。函数式代码易于测试和复用,容易实现并发,且不容易受到bug的攻击。scala是一种能很好支持函数式编程的新兴jvm语言。本书是针对希望学习fp并将它应用于日常编码中的程序员而写的,内容包括:函数式编程的概念;函数式编程相关的各种"为什么”和"怎么做”;如何编写多核程序;练习和检测。

内容简介

√ scala的入门好书有《快学scala》,但讲高阶特性的仅此一本,空前绝后。√ 自成体系已显大师风范,亲手设计习题更是罕见,本书习题可谓王冠之明珠。√ 经典名著,岂敢怠慢!本书译者是scala社区翘楚,更有旗帜人物作序力荐。√ 好书不仅给你知识,更带来挑战。本书实属典范,语言|函数式|智慧全面挑战。 

目录

目录原推荐序 序言 致谢 关于本书 函数式编程介绍 1什么是函数式编程 1.1 函数式编程的好处:一个简单的例子 1.1.1 一段带有副作用的程序 1.1.2 函数式的解法:去除副作用 1.2 (纯)函数究竟是什么 1.3 引用透明、纯粹度以及替代模型 1.4 小结 2在scala中使用函数式编程2.1 scala语言介绍:2.2 运行程序 2.3 模块、对象和命名空间2.4 高阶函数:把函数传给函数2.4.1 迂回做法:使用循环方式2.4.2 **个高阶函数2.5 多态函数:基于类型的抽象2.5.1 一个多态函数的例子 2.5.2 对高阶函数传入匿名函数 2.6 通过类型来实现多态 2.7 小结3函数式数据结构 3.1 定义函数式数据结构 3.2 模式匹配 3.3 函数式数据结构中的数据共享 3.3.1 数据共享的效率3.3.2 改进高阶函数的类型推导 3.4 基于list的递归并泛化为高阶函数3.4.1 更多与列表相关的函数 3.4.2 用简单组件组合list函数时的效率损失3.5 树 3.6 小结 4不是用异常来处理错误 4.1 异常的优点与劣势 4.2 异常的其他选择 4.3 option数据类型4.3.1 option的使用模式 4.3.2 option的组合、提升及对面向异常的api的包装 4.4 either数据类型4.5 小结5严格求值和惰性求值 5.1 严格和非严格函数5.2 一个扩展例子:惰性列表5.2.1 对stream保持记忆,避免重复运算 5.2.2 用于检测stream的helper函数5.3 把函数的描述与求值分离 5.4 无限流与共递归5.5 小结6纯函数式状态 6.1 以副作用方式生成随机数6.2 纯函数式随机数生成器6.3 用纯函数式实现带状态的api 6.4 状态行为的更好的api6.4.1 组合状态行为 6.4.2 嵌套状态行为 6.5 更通用的状态行为数据类型6.6 纯函数式命令编程6.7 小结功能设计和组合子库 7纯函数式的并行计算 7.1 选择数据类型和函数 7.1.1 一种用于并行计算的数据类型7.1.2 组合并行计算7.1.3 显性分流7.2 确定表现形式 7.3 完善api7.4 api与代数 7.4.1 映射法则7.4.2 分流法则7.4.3 打破法则:一个微妙的bug7.4.4 用actor实现一个完全无阻塞的par7.5 完善组合子为更通用的形式 7.6 小结8基于性质的测试 8.1 基于性质测试概览8.2 选择数据类型和函数 8.2.1 api的初始代码片段8.2.2 性质的含义与api8.2.3 生成器的意义和api 8.2.4 生成值决定生成器8.2.5 精炼prop的数据类型8.3 *小化测试用例8.4 使用库并改进其易用性8.4.1 一些简单的例子 8.4.2 为并行计算编写测试套件 8.5 测试高阶函数及展望未来 8.6 生成器法则8.7 小结 9语法分析器组合子9.1 代数设计,走起 9.2 一种可能的代数 9.2.1 切片和非空重复9.3 处理上下文的相关性9.4 写一个json分析器9.4.1 json格式9.4.2 json分析器 9.5 错误提示 9.5.1 一种可行的设计9.5.2 错误嵌套 9.5.3 控制分支和回溯轨迹 9.6 实现代数 9.6.1 一种可能的实现 9.6.2 串化分析器 9.6.3 标记分析器 9.6.4 故障转移和回溯9.6.5 上下文相关的分析9.7 小结 函数设计的通用结构 10monoid 10.1 什么是monoid 10.2 使用monoid折叠列表 10.3 结合律和并行化10.4 例子:并行解析10.5 可折叠数据结构 10.6 组合monoid 10.6.1 组装更加复杂的monoid10.6.2 使用组合的monoid融合多个遍历10.7 小结 ..15111monad 11.1 函子:对map函数的泛化 11.1.1 函子法则 11.2 monad:对flatmap和unit函数的泛化 11.3 monadic组合子11.4 单子定律 11.4.1 结合法则 11.4.2 为指定的monad证明结合法则11.4.3 单位元法则 11.5 什么是monad 11.5.1 identity monad 11.5.2 状态monad和partial type application11.6 小结 12可应用和可遍历函子 12.1 泛化单子 12.2 applicative trait12.3 单子与可应用函子的区别 12.3.1 对比option applicative与option monad 12.3.2 对比parser applicative与parser monad 12.4 可应用函子的优势12.4.1 不是所有的可应用函子都是monad12.5 可应用法则12.5.1 left and right identity12.5.2 结合律12.5.3 naturality of product 12.6 可遍历函子12.7 使用traverse12.7.1 从monoid到可应用函子12.7.2 带状态的遍历 12.7.3 组合可遍历结构 12.7.4 遍历融合12.7.5 嵌套遍历12.7.6 monad组合12.8 小结 作用与i/o 13外部作用和i/o 13.1 分解作用13.2 一个简单的io类型 13.2.1 处理输入效果13.2.2 简单io类型的优缺点13.3 避免栈溢出13.3.1 将一个控制流转化为数据构造子 13.3.2 trampolining:栈溢出的通用解决方法 13.4 一个更微妙的io类型13.4.1 合理的monad13.4.2 一个支持控制台i/o的monad13.4.3 纯解释器13.5 非阻塞和异步i/o 13.6 一个通用的io类型 13.6.1 *终的main程序 13.7 为什么io类型不足以支撑流式i/o13.8 小结14本地影响和可变状态 14.1 纯函数式的可变状态14.2 一种限制副作用范围的数据类型14.2.1 受限可变性的语言表达 14.2.2 一种可变引用的代数表达 14.2.3 执行修改状态的行为 14.2.4 可变数组14.2.5 一个纯函数的in-place快排实现14.3 纯粹是相对于上下文的14.3.1 副作用是什么?14.4 小结 15流式处理与增量i/o 15.1 命令式i/o的问题示例 15.2 一个简单的流转换器 15.2.1 创建process 15.2.2 组合和追加处理 15.2.3 处理文件 15.3 可扩展的处理类型15.3.1 来源15.3.2 保证资源安全 15.3.3 单一输入过程15.3.4 多个输入流 15.3.5 去向15.3.6 effectful通道15.3.7 动态资源分配 15.4 应用场景 15.5 小结
展开全部

相关资料

这本书绝不轻易放过每个知识点,全书包含有大量习题,要求你自己实现 scala 标准库或者 scalaz 中的既有功能。所以,当你读完本书,做完习题后,虽然你的应用开发能力并不会直接提升,但你会体会到构建函数式语言和框架时的难点和取舍,从而增进你的框架开发和语言设计的能力。——thoughtworks lead consultant 杨博这本书所讲授的,正是基于 scala 的函数式编程基础。基于 scheme、haskell 等老牌函数式语言的传统教材的问题在于,相关语言的语法和思维方式与读者现有的知识体系迥异,容易造成较为陡峭的入门门槛。此外,由于这些语言本身的实际应用机会不多,初学者也难以在实战中获得宝贵的直觉和经验。而在 scala 的帮助下,这本书并不要求你抛开现有的思维方式另起炉灶,它所做的更像是为你现有的思维方式添砖加瓦,从而令你如虎添翼。——spark committer from databricks 连城尽管函数式编程在近十多年用得越来越多,但市面上介绍其高阶特性的书却并不多。这本书在这方面是个重要的补充,它不仅仅面向 scala 程序员,同样面向用任何编程语言开发的程序员,只要你充满好奇心。——挖财网首席架构师 王宏江“让你洞察计算的本质。” ——martin odersky, scala的作者“scala和java8开发者的函数式编程权威指南!” ——william e. wheeler, teksystems“本书向你展示了提升scala技能的方法和理念,它已超越‘更好的java’。” ——fernando dobladez, code54“里面的练习有些挑战,很有趣,对你在真实世界中使用它很有益。” ——chris nauroth, hortonworks“边干边学,而非只是阅读。” ——douglas alan、eli和edythe l. broad,哈佛和麻省理工学院

作者简介

译者王宏江,现任挖财技术部资深架构师,从事软件开发有十多年。曾在阿里巴巴担任架构师,参与过1688、来往等网站的基础建设,以及淘宝类目等基础业务重构,并在淘宝中间件负责过应用容器与分布式框架团队。Tomcat方面的专家,善于诊断问题以及性能调优。有丰富的企业架构和大型互联网技术架构经验。同时也是函数式编程爱好者,和Scala布道者。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航