图书介绍
Erlang程序设计 第2版【2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载】

- (瑞典)阿姆斯特朗著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115354570
- 出版时间:2014
- 标注页数:428页
- 文件大小:57MB
- 文件页数:448页
- 主题词:程序语言-程序设计
PDF下载
下载说明
Erlang程序设计 第2版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 为何用Erlang2
第1章 什么是并发2
1.1 给并发建模2
1.1.1 开始模拟3
1.1.2 发送消息4
1.1.3 接收消息4
1.2 并发的益处4
1.3 并发程序和并行计算机5
1.4 顺序和并发编程语言6
1.5 小结6
第2章 Erlang速览7
2.1 Shell7
2.1.1 =操作符8
2.1.2 变量和原子的语法8
2.2 进程、模块和编译9
2.2.1 在shell里编译并运行Hello World9
2.2.2 在Erlang shell外编译9
2.3 你好,并发10
2.3.1 文件服务器进程10
2.3.2 客户端代码13
2.3.3 改进文件服务器14
2.4 练习14
第二部分 顺序编程16
第3章 基本概念16
3.1 启动和停止Erlang shell16
3.1.1 在shell里执行命令17
3.1.2 可能出错的地方17
3.1.3 在Erlang shell里编辑命令18
3.2 简单的整数运算18
3.3 变量19
3.3.1 Erlang的变量不会变20
3.3.2 变量绑定和模式匹配20
3.3.3 为什么一次性赋值让程序变得更好21
3.4 浮点数22
3.5 原子22
3.6 元组23
3.6.1 创建元组24
3.6.2 提取元组的值25
3.7 列表26
3.7.1 专用术语26
3.7.2 定义列表27
3.7.3 提取列表元素27
3.8 字符串27
3.9 模式匹配再探29
3.10 练习30
第4章 模块与函数31
4.1 模块是存放代码的地方31
4.1.1 常见错误33
4.1.2 目录和代码路径33
4.1.3 给代码添加测试33
4.1.4 扩展程序34
4.1.5 分号放哪里36
4.2 继续购物36
4.3 fun:基本的抽象单元39
4.3.1 以fun作为参数的函数40
4.3.2 返回fun的函数41
4.3.3 定义你自己的控制抽象42
4.4 简单列表处理42
4.5 列表推导45
4.5.1 Quicksort46
4.5.2 毕达哥拉斯三元数组47
4.5.3 回文构词48
4.6 内置函数48
4.7 关卡49
4.7.1 关卡序列49
4.7.2 关卡示例50
4.7.3 true关卡的作用51
4.8 case和if表达式52
4.8.1 case表达式52
4.8.2 if表达式53
4.9 构建自然顺序的列表54
4.10 归集器55
4.11 练习56
第5章 记录与映射组57
5.1 何时使用映射组或记录57
5.2 通过记录命名元组里的项58
5.2.1 创建和更新记录59
5.2.2 提取记录字段59
5.2.3 在函数里模式匹配记录59
5.2.4 记录是元组的另一种形式60
5.3 映射组:关联式键-值存储60
5.3.1 映射组语法60
5.3.2 模式匹配映射组字段62
5.3.3 操作映射组的内置函数63
5.3.4 映射组排序64
5.3.5 以JSON为桥梁64
5.4 练习66
第6章 顺序程序的错误处理67
6.1 处理顺序代码里的错误67
6.2 用try...catch捕捉异常错误69
6.2.1 try...catch具有一个值69
6.2.2 简写法70
6.2.3 try...catch编程样例71
6.3 用catch捕捉异常错误72
6.4 针对异常错误的编程样式72
6.4.1 改进错误消息72
6.4.2 经常返回错误时的代码73
6.4.3 错误可能有但罕见时的代码73
6.4.4 捕捉一切可能的异常错误74
6.5 栈跟踪74
6.6 抛错要快而明显,也要文明75
6.7 练习75
第7章 二进制型与位语法76
7.1 二进制型76
7.2 位语法78
7.2.1 打包和解包16位颜色78
7.2.2 位语法表达式79
7.2.3 位语法的真实例子81
7.3 位串:处理位级数据85
7.4 练习87
第8章 Erlang顺序编程补遗88
8.1 apply89
8.2 算术表达式90
8.3 元数91
8.4 属性91
8.4.1 预定义的模块属性91
8.4.2 用户定义的模块属性93
8.5 块表达式94
8.6 布尔值94
8.7 布尔表达式95
8.8 字符集95
8.9 注释95
8.10 动态代码载入96
8.11 Erlang的预处理器99
8.12 转义序列99
8.13 表达式和表达式序列100
8.14 函数引用101
8.15 包含文件101
8.16 列表操作:++和--102
8.17 宏102
8.18 模式的匹配操作符104
8.19 数字105
8.19.1 整数105
8.19.2 浮点数105
8.20 操作符优先级106
8.21 进程字典106
8.22 引用108
8.23 短路布尔表达式108
8.24 比较数据类型108
8.25 元组模块109
8.26 下划线变量109
8.27 练习110
第9章 类型111
9.1 指定数据和函数类型111
9.2 Erlang的类型表示法113
9.2.1 类型的语法113
9.2.2 预定义类型114
9.2.3 指定函数的输入输出类型114
9.2.4 导出类型和本地类型116
9.2.5 不透明类型116
9.3 dialyzer教程117
9.3.1 错误使用内置函数的返回值118
9.3.2 内置函数的错误参数119
9.3.3 错误的程序逻辑119
9.3.4 使用dialyzer120
9.3.5 干扰dialyzer的事物120
9.4 类型推断与成功分型121
9.5 类型系统的局限性123
9.6 练习125
第10章 编译和运行程序126
10.1 改变开发环境126
10.1.1 设置载入代码的搜索路径126
10.1.2 在系统启动时执行一组命令127
10.2 运行程序的不同方式128
10.2.1 在Erlang shell里编译和运行128
10.2.2 在命令提示符界面里编译和运行129
10.2.3 作为Escript运行130
10.2.4 带命令行参数的程序131
10.3 用makefile使编译自动化132
10.4 当坏事发生135
10.4.1 停止Erlang135
10.4.2 未定义(缺失)的代码135
10.4.3 shell没有反应136
10.4.4 我的makefile不工作137
10.4.5 Erlang崩溃而你想阅读故障转储文件137
10.5 获取帮助138
10.6 调节运行环境138
10.7 练习139
第三部分 并发和分布式程序142
第11章 现实世界中的并发142
第12章 并发编程145
12.1 基本并发函数145
12.2 客户端-服务器介绍147
12.3 进程很轻巧151
12.4 带超时的接收153
12.4.1 只带超时的接收154
12.4.2 超时值为0的接收154
12.4.3 超时值为无穷大的接收155
12.4.4 实现一个定时器155
12.5 选择性接收156
12.6 注册进程157
12.7 关于尾递归的说明158
12.8 用MFA或Fun进行分裂160
12.9 练习160
第13章 并发程序中的错误161
13.1 错误处理的理念161
13.1.1 让其他进程修复错误162
13.1.2 任其崩溃162
13.1.3 为何要崩溃162
13.2 错误处理的术语含义163
13.3 创建连接164
13.4 同步终止的进程组164
13.5 设立防火墙165
13.6 监视166
13.7 基本错误处理函数166
13.8 容错式编程167
13.8.1 在进程终止时执行操作167
13.8.2 让一组进程共同终止168
13.8.3 生成一个永不终止的进程169
13.9 练习170
第14章 分布式编程171
14.1 两种分布式模型171
14.2 编写一个分布式程序172
14.3 创建名称服务器173
14.3.1 第1阶段:一个简单的名称服务器173
14.3.2 第2阶段:客户端在一个节点,服务器在相同主机的另一个节点174
14.3.3 第3阶段:同一局域网内不同机器上的客户端和服务器175
14.3.4 第4阶段:跨互联网不同主机上的客户端和服务器176
14.4 分布式编程的库和内置函数177
14.4.1 远程分裂示例178
14.4.2 文件服务器再探180
14.5 cookie保护系统181
14.6 基于套接字的分布式模型182
14.6.1 用lib_chan控制进程182
14.6.2 服务器代码183
14.7 练习185
第四部分 编程库与框架188
第15章 接口技术188
15.1 Erlang如何与外部程序通信188
15.2 用端口建立外部C程序接口190
15.2.1 C程序191
15.2.2 Erlang程序193
15.2.3 编译和链接端口程序195
15.2.4 运行程序195
15.3 在Erlang里调用shell脚本196
15.4 高级接口技术196
15.5 练习197
第16章 文件编程198
16.1 操作文件的模块198
16.2 读取文件的几种方法199
16.2.1 读取文件里的所有数据类型199
16.2.2 分次读取文件里的数据类型200
16.2.3 分次读取文件里的行202
16.2.4 读取整个文件到二进制型中202
16.2.5 通过随机访问读取文件203
16.3 写入文件的各种方式205
16.3.1 把数据列表写入文件206
16.3.2 把各行写入文件207
16.3.3 一次性写入整个文件207
16.3.4 写入随机访问文件209
16.4 目录和文件操作209
16.4.1 查找文件信息210
16.4.2 复制和删除文件211
16.5 其他信息211
16.6 一个查找工具函数212
16.7 练习214
第17章 套接字编程216
17.1 使用TCP216
17.1.1 从服务器获取数据216
17.1.2 一个简单的TCP服务器219
17.1.3 顺序和并行服务器222
17.1.4 注意事项223
17.2 主动和被动套接字224
17.2.1 主动消息接收(非阻塞式)224
17.2.2 被动消息接收(阻塞式)225
17.2.3 混合消息接收(部分阻塞式)225
17.3 套接字错误处理226
17.4 UDP227
17.4.1 最简单的UDP 服务器与客户端227
17.4.2 一个UDP阶乘服务器228
17.4.3 UDP数据包须知230
17.5 对多台机器广播230
17.6 一个SHOUTcast服务器231
17.6.1 SHOUTcast协议232
17.6.2 SHOUTcast服务器的工作原理232
17.6.3 SHOUTcast服务器的伪代码233
17.6.4 运行SHOUTcast服务器234
17.7 练习235
第18章 用WebSocket和E rlang进行浏览236
18.1 创建一个数字时钟237
18.2 基本交互239
18.3 浏览器里的Erlang shell240
18.4 创建一个聊天小部件241
18.5 简化版IRC244
18.6 浏览器里的图形247
18.7 浏览器-服务器协议249
18.7.1 从Erlang发送消息到浏览器249
18.7.2 从浏览器到Erlang的消息250
18.8 练习251
第19章 用ETS和DETS存储数据252
19.1 表的类型252
19.2 影响ETS表效率的因素254
19.3 创建一个ETS表255
19.4 ETS示例程序255
19.4.1 三字母组合迭代函数256
19.4.2 创建一些表257
19.4.3 创建表所需的时间258
19.4.4 访问表所需的时间258
19.4.5 获胜者是259
19.5 保存元组到磁盘260
19.6 其余操作262
19.7 练习263
第20章 Mnesia:Erlang数据库264
20.1 创建初始数据库264
20.2 数据库查询265
20.2.1 选择表里的所有数据266
20.2.2 表里选择数据267
20.2.3 从表里有条件选择数据268
20.2.4 从两个表里选择数据(联接)268
20.3 添加和移除数据库里的数据269
20.3.1 添加行269
20.3.2 移除行270
20.4 Mnesia事务270
20.4.1 中止事务271
20.4.2 载入测试数据273
20.4.3 do()函数273
20.5 在表里保存复杂数据274
20.6 表的类型和位置275
20.6.1 创建表276
20.6.2 常用的表属性组合277
20.6.3 表的行为278
20.7 表查看器278
20.8 深入挖掘279
20.9 练习279
第21章 性能分析、调试与跟踪280
21.1 Erlang代码的性能分析工具281
21.2 测试代码覆盖281
21.3 生成交叉引用283
21.4 编译器诊断信息283
21.4.1 头部不匹配284
21.4.2 未绑定变量284
21.4.3 未结束字符串284
21.4.4 不安全变量284
21.4.5 影子变量285
21.5 运行时诊断286
21.6 调试方法287
21.6.1 io:format调试288
21.6.2 转储至文件289
21.6.3 使用错误记录器289
21.7 Erlang调试器289
21.8 跟踪消息与进程执行291
21.9 Erlang代码的测试框架294
21.10 练习295
第22章 OTP介绍296
22.1 通用服务器之路297
22.1.1 Server 1:基本的服务器297
22.1.2 Server 2:实现事务的服务器298
22.1.3 Server 3:实现热代码交换的服务器299
22.1.4 Server 4:事务与热代码交换301
22.1.5 Server 5:更多乐趣302
22.2 gen_server入门304
22.2.1 确定回调模块名304
22.2.2 编写接口方法305
22.2.3 编写回调方法305
22.3 gen_server的回调结构308
22.3.1 启动服务器308
22.3.2 调用服务器308
22.3.3 调用和播发309
22.3.4 发给服务器的自发性消息310
22.3.5 后会有期,宝贝310
22.3.6 代码更改311
22.4 填写gen_server模板311
22.5 深入探索313
22.6 练习313
第23章 用OTP构建系统315
23.1 通用事件处理316
23.2 错误记录器318
23.2.1 记录错误318
23.2.2 配置错误记录器319
23.2.3 分析错误323
23.3 警报管理324
23.4 应用程序服务器326
23.4.1 质数服务器326
23.4.2 面积服务器327
23.5 监控树328
23.6 启动系统331
23.7 应用程序335
23.8 文件系统组织方式336
23.9 应用程序监视器337
23.10 怎样计算质数338
23.11 深入探索340
23.12 练习341
第五部分 构建应用程序344
第24章 编程术语344
24.1 保持Erlang世界观344
24.2 多用途服务器346
24.3 有状态的模块348
24.4 适配器变量349
24.5 表意编程351
24.6 练习353
第25章 第三方程序354
25.1 制作可共享代码存档并用rebar管理代码354
25.1.1 安装rebar354
25.1.2 在GitHub上创建一个新项目355
25.1.3 在本地克隆这个项目355
25.1.4 制作一个OTP应用程序356
25.1.5 宣传你的项目356
25.2 整合外部程序与我们的代码357
25.3 生成依赖项本地副本358
25.4 用cowboy构建嵌入式Web服务器359
25.5 练习364
第26章 多核CPU编程366
26.1 给Erlang程序员的好消息367
26.2 如何在多核CPU中使程序高效运行367
26.2.1 使用大量进程368
26.2.2 避免副作用368
26.2.3 避免顺序瓶颈369
26.3 让顺序代码并行370
26.4 小消息,大计算372
26.5 用map reduce使计算并行化376
26.6 练习380
第27章 福尔摩斯的最后一案381
27.1 找出数据的相似度381
27.2 sherlock演示382
27.2.1 获取并预处理数据382
27.2.2 寻找最像给定文件的邮件383
27.2.3 搜索指定作者、日期或标题的邮件385
27.3 数据分区的重要性386
27.4 给邮件添加关键词386
27.4.1 词汇的重要性:TF*IDF权重387
27.4.2 余弦相似度:两个权重向量的相似程度388
27.4.3 相似度查询389
27.5 实现方式概览389
27.6 练习390
27.7 总结391
附录A OTP模板392
附录B 一个套接字应用程序398
附录C 一种简单的执行环境413
热门推荐
- 510366.html
- 1848536.html
- 189987.html
- 3906500.html
- 671418.html
- 2606277.html
- 2277396.html
- 356733.html
- 997123.html
- 1.html
- http://www.ickdjs.cc/book_1791064.html
- http://www.ickdjs.cc/book_198108.html
- http://www.ickdjs.cc/book_2915054.html
- http://www.ickdjs.cc/book_3503815.html
- http://www.ickdjs.cc/book_2800617.html
- http://www.ickdjs.cc/book_2630985.html
- http://www.ickdjs.cc/book_943026.html
- http://www.ickdjs.cc/book_3297995.html
- http://www.ickdjs.cc/book_1784022.html
- http://www.ickdjs.cc/book_2069000.html