具体描述
深入研习对未来编程具有重要意义的7种语言
Lua、Factor、Elixir、Elm、Julia、Idris和MiniKanren
本书带领读者认识和学习7种编程语言,旨在帮助读者探索更为强大的编程工具。
本书延续了同系列的畅销书《七周七语言》《七周七数据库》和《七周七Web开发框架》的体例和风格。
全书共8章,前7章介绍了Lua、Factor、Elm、Elixir、Julia、miniKanren和Idris共计7种编程语言,最后一章总结回顾了所有的知识点。书中对每一种编程语言的介绍,都为编程开发带来了独特而强大的思路。除此之外,书中还提供了一系列代码示例和在线资源以供参考。
本书适合有一定基础的开发人员阅读,能够帮助读者拓宽思路,激发更多的灵感。
作者简介
Bruce Tate,icanmaketibetter.com的CTO,十多本技术图书的作者(包括《Seven Languages in Seven Weeks》)。也是“七周七”系列图书的编辑。
Fred Daoud 热爱函数式编程,他和Jack Moffitt共同编著了《Seven Web
Frameworks in Seven Weeks》。
Ian Dees 在波特兰市的一家测试设备生厂商从事编码和测试工作。他是《Cucumber
Recipes》一书的合著者。Jack Moffitt是Mozilla Research的高级研发工程师,负责用Mozilla的新的Rust语言编写的一款实验性的浏览器引擎(名为Servo)
目录信息
第一天:开始历险 1
本周日程 2
Lua一览 3
安装Lua 3
交互式开发 3
初窥 4
Lua基础 5
表达式 6
函数 7
具名参数 10
控制流程 10
变量 11
离开REPL 12
第一天我们学了什么 13
轮到你了 13
第二天:深入了解Table 14
Table当作字典用 14
穿着数组外衣的字典 16
metatables 17
自制面向对象系统 21
协程 25
多任务 26
Lua作者Roberto Ierusalimschy
访谈 29
第二天我们学了什么 30
轮到你了 31
第三天:真实世界中的Lua 32
制作音乐 33
为历险做准备 33
创建项目 34
添加声效 36
从音符到歌曲 39
多声道 43
Canon in D 45
第三天我们学了什么 46
轮到你了 46
Lua小结 47
优势 47
劣势 47
终章 48
第2章 Factor 49
第一天:栈,栈 50
第一天我们学到了什么 59
第二天:更进一步 61
运行独立的程序 64
写单元测试 67
Factor的创建者Slava·Factor的
采访 69
第二天我们学到了什么? 70
轮到你了 71
第三天:乘风破浪,搏击长空 72
元组 72
元组构造器 73
为购物车结账 74
把命令组装成流水管道 75
重新回顾FizzBuzz游戏 78
与生俱来以下功能 81
编辑器集成 82
演示 83
第三天我们学了什么 83
轮到你了 84
总结Factor 84
第3章 Elm 86
第一天:掌握基础 87
第二天:驯服回调 97
第三天:一切都是游戏 107
Elm总结 119
第4章 Elixir 120
第一天:夯实基础 121
安装Elixir 121
所以说……它是Ruby++,
对吗 122
不,不是Ruby 122
编写函数 124
使用管道组织程序 125
使用模块 126
命名函数 127
do构造块 127
使用map 129
list 130
for推导 133
keyword List 134
函数语法糖 135
第一天我们学到了什么 135
第二天:控制变化 137
Mix 137
从具体到元 138
使用struct为字段命名 139
创建具体行为 140
为状态机建模 141
添加状态机行为 142
寻找模式 143
编写测试 144
使用宏实现should 145
编写更多的测试 146
编写一个复杂的宏 147
理解编译期流程 148
构造一个骨架 148
理解编译期流程,第2部分 150
使用状态机 152
第二天我们学到了什么 152
第三天:衍生和重生 154
衍生进程 155
构建一个OTP应用 156
在终端中使用OTP 158
可靠性监护 159
第三天我们学到了什么 161
第三天自习 161
Exlir总结 162
优势 162
弱点 163
最后的思考 163
第5章 Julia 164
第一天:无谓的反抗 165
安装Julia 165
内置类型 166
第一天我们学到了什么? 175
轮到你了 175
第二天:吸收 176
控制流 176
用户定义类型和函数 178
并发 182
采访Julia的创始人:Jeff Bezanson, Stefan
Karpinski, Viral Shah, Alan Edelman 185
我们第二天学到了什么? 186
轮到你了 187
第三天:打成一片 187
转换代码而不是数据 188
图像切处和切块 191
第三天我们学到了什么? 196
轮到你了 196
Julia总结 197
优势 197
劣势 198
最后的思考 198
第6章 miniKanren 199
第一天:代码的一致性匹配 199
安装core.logic 200
目标一定要成功 201
使用关系 202
用因子编程 204
平行宇宙 206
咒语的秘密 207
第一天我们学到了什么 208
轮到你了 209
第二天:混合逻辑与函数 210
模式,那里都是模式 210
用上散列图 212
另一种判定 213
对David Nolen的采访 216
第二天我们学到了什么 217
轮到你了 218
第三天:用逻辑来写故事 218
用有限域编程 219
神奇的故事 221
第三天我们学到了什么 228
轮到你了 228
miniKanren的回顾 229
优势 229
劣势 230
写在最后 230
第7章 Idris 231
第一天:基础 232
安装Idris 232
理解基础 233
原生类型和表达式 233
函数 234
定义数据类型 236
第一天我们学到了什么 240
轮到你了 240
第二天:开始使用依赖类型 241
理解依赖类型 241
派生依赖类型 243
闰年里的日期限定 245
第二天我们学到了什么 248
轮到你了 248
第三天:依赖类型实践 249
智能补全 249
证明完毕,亲爱的华生 251
交互式证明 252
下一步 254
证明为我们做了什么 256
现实世界 257
一段乱糟糟的C++代码 257
指称设计 258
回顾 259
改善 260
轮到你了 261
结束Idris 262
第8章 总结 264
起源 264
中央高速公路 265
前沿 267
脏地图 268
最后的挑战 270
· · · · · · (收起)
读后感
Learn from the award-winning programming series that inspired the Elixir language. Hear how other programmers across broadly different communities solve problems important enough to compel language development. Expand your perspective, and learn to solve mu...
Learn from the award-winning programming series that inspired the Elixir language. Hear how other programmers across broadly different communities solve problems important enough to compel language development. Expand your perspective, and learn to solve mu...
Learn from the award-winning programming series that inspired the Elixir language. Hear how other programmers across broadly different communities solve problems important enough to compel language development. Expand your perspective, and learn to solve mu...
Learn from the award-winning programming series that inspired the Elixir language. Hear how other programmers across broadly different communities solve problems important enough to compel language development. Expand your perspective, and learn to solve mu...
Learn from the award-winning programming series that inspired the Elixir language. Hear how other programmers across broadly different communities solve problems important enough to compel language development. Expand your perspective, and learn to solve mu...
用户评价
说实话,我一开始并没有抱太大的期望,毕竟“七周七语言”这个名字听起来有点过于宏大,我甚至怀疑它是否能真正地帮助我深入理解一门语言。然而,《七周七语言(卷2)》完全颠覆了我的看法。这本书的设计非常巧妙,它没有像其他教材那样上来就灌输大量的语法点和词汇,而是选择了一种更加循序渐进、以点带面的方式。我惊叹于作者是如何将复杂的语言现象变得如此易于理解,他运用了大量的比喻和实例,让原本抽象的概念变得生动形象。我最欣赏的是书中对于语言内在逻辑的剖析,它不仅仅是告诉你“为什么这么说”,更是让你“理解为什么可以这么说”。这种深入骨髓的理解,远比死记硬背的效果要好得多。我发现自己不仅在学习语言,更是在学习一种新的思考方式。书中的一些章节,简直就像是在给我打开一扇扇通往不同文化思维模式的窗户。每次阅读,都有一种“哇,原来语言还可以这样理解”的惊艳感。我能够明显地感觉到自己的语言感知能力在提升,对细微的语言差异有了更敏锐的察觉。这本书就像是一本语言的“武功秘籍”,让我逐渐掌握了辨别和运用语言的精髓。
最近迷上了《七周七语言(卷2)》,感觉自己像是穿越到了一个语言的宝藏岛屿,每一页都充满了惊喜和发现。我一直对语言有着莫名的亲切感,但总觉得隔着一层纱,无法真正触及到它最核心的部分。这本书就像是一位经验丰富的向导,带着我一步步拨开迷雾,看到了语言背后那令人着迷的宏伟蓝图。作者的叙述方式非常独特,他不是在教你死记硬背,而是在引导你“玩转”语言。我尤其喜欢书中对语言演变历史的梳理,那种纵横捭阖的叙事,让我看到了语言是如何在时间和空间中生生不息、变化万千的。每一次的阅读,都像是一场精彩的头脑风暴,让我对语言的理解进入了一个全新的境界。我发现自己不再是那个被动接受者,而是开始主动地去思考、去分析、去感受语言的魅力。这本书不仅仅是关于语言本身,它更是在启迪你如何去观察世界,如何去理解不同的人。我常常会沉浸在书中,久久不能自拔,每一次合上书,都觉得自己的内心被一种强烈的求知欲所点燃,迫不及待地想要继续这场奇妙的语言之旅。
我最近翻阅的《七周七语言(卷2)》着实让我眼前一亮,仿佛打开了一扇通往语言奇妙世界的门。这本书与我过去接触过的任何语言学习书籍都不同,它没有刻板的语法讲解,也没有枯燥的词汇列表,而是以一种更加宏观和艺术化的视角,带领读者去感受语言的生命力。作者的文字极具感染力,他通过生动的比喻和引人入胜的案例,将语言的本质展现在我面前。我尤其欣赏书中对语言演变规律的阐释,那种历史的厚重感和逻辑的严谨性,让我对语言的形成和发展有了全新的认识。阅读这本书,我感觉自己不再是被动地接受知识,而是主动地参与到一场关于语言的探索之中。每一次翻阅,都像是进行一次深度思考,让我对语言的理解更加深刻,也更加敏锐。它不仅仅教会我如何去“说”某种语言,更让我体会到如何去“听”语言的声音,去“感受”语言的脉搏。这本书让我看到了语言的无限可能性,也激发了我对未知语言的好奇心,让我渴望去探索更多语言的奥秘,去理解更广阔的世界。
这本《七周七语言(卷2)》真是让我爱不释手,沉浸在一种奇妙的探索之中。我一直对语言的奥秘充满了好奇,但总觉得传统意义上的语言学习过程有些枯燥乏味,像是背诵单词和语法规则的无尽循环。这本书完全打破了我的固有认知,它以一种极其生动和富有启发性的方式,带领我走进了一个由不同语言构成的奇妙世界。从第一页开始,我就被作者独特的视角所吸引,他不仅仅是在教授某种语言的结构,更是在揭示一种文化、一种思维方式的演变。我尤其喜欢书中对语言之间联系的阐释,那种“原来如此”的恍然大悟感,仿佛找到了解开语言谜团的钥匙。作者的文笔流畅且富有感染力,即使在探讨一些相对复杂 linguistic concepts 时,也始终保持着一种轻松愉悦的阅读体验。我常常会一边阅读,一边在脑海中勾勒出不同语言的轮廓,想象着它们在历史长河中的碰撞与融合。这本书不仅仅是关于“学会”语言,更是一种“理解”语言的旅程,它让我看到了语言背后更深层的意义,也激发了我对世界更多元的认知。每次合上书,都会觉得受益匪浅,内心充满了一种对知识的渴望,迫不及待地想继续探索。
《七周七语言(卷2)》简直就是我最近的“精神食粮”,让我对语言的世界充满了前所未有的热情。我一直认为,学习语言应该是件充满乐趣的事情,而不是枯燥乏味的应试过程。这本书完全做到了这一点,它以一种非常创新和引人入胜的方式,带领我深入探索语言的奇妙之处。作者的文字功底深厚,将复杂的语言学理论用通俗易懂的方式娓娓道来,让我这个非专业人士也能轻松理解。我最喜欢的部分是书中对不同语言之间共性的挖掘,那种跨越文化和地域的联系,让我看到了语言背后人类共同的情感和思维。每一次阅读,都像是在进行一场心灵的对话,让我对语言的理解上升到了一个全新的高度。我发现自己不仅仅是在学习如何表达,更是在学习如何去感受和理解。这本书就像是一扇通往未知世界的窗口,让我看到了语言背后那丰富多彩的人文图景。我常常会因为书中的某个观点而恍然大悟,也常常会因为某个生动的例子而会心一笑。这本书让我对语言学习的态度发生了根本性的转变,它让我真正体会到了语言的魅力所在。
Idris部分被千里冰封点名批评(https://github.com/ice1000/Books/blob/master/Wow-FV-zh/%E5%A5%BD%E8%80%B6%EF%BC%8C%E6%98%AF%E5%BD%A2%E5%BC%8F%E9%AA%8C%E8%AF%81%EF%BC%81.pdf)
确实有各异的语言,其中讲到一些前沿
确实有各异的语言,其中讲到一些前沿
Idris部分被千里冰封点名批评(https://github.com/ice1000/Books/blob/master/Wow-FV-zh/%E5%A5%BD%E8%80%B6%EF%BC%8C%E6%98%AF%E5%BD%A2%E5%BC%8F%E9%AA%8C%E8%AF%81%EF%BC%81.pdf)
Lua、Factor、Elixir、Elm、Julia、Idris和MiniKanren