本書帶領(lǐng)讀者認(rèn)識(shí)和學(xué)習(xí)了7種編程語言,旨在幫助讀者探索更為強(qiáng)大的編程工具。
本書延續(xù)了同系列的暢銷書《七周七語言》《七周七數(shù)據(jù)庫》和《七周七Web開發(fā)框架》的體例和風(fēng)格。全書共8章,前7章介紹了Lua、Factor、Elm、Elixir、Julia、miniKanren和Idris共計(jì)7種編程語言,后一章總結(jié)回顧了所有的知識(shí)點(diǎn)。書中對(duì)每一種編程語言的介紹,都為編程開發(fā)帶來了獨(dú)特而強(qiáng)大的思路。除此之外,書中還提供了一系列代碼示例和在線資源以供參考。
本書適合有一定基礎(chǔ)的開發(fā)人員閱讀,能夠幫助讀者拓寬思路,激發(fā)更多的靈感。
暢銷技術(shù)圖書“七周七”系列新佳作
深入研習(xí)對(duì)未來編程具有重要意義的7種語言
Lua、Factor、Elixir、Elm、Julia、Idris和MiniKanren
當(dāng)你深入學(xué)習(xí)本書所介紹的每一種語言時(shí),你將能夠?qū)φZ言的抽象和原理一窺門徑,而這對(duì)于你用任何語言編寫更好的程序都頗有幫助。
通過“七周七”系列中的這本新圖書,你可以按部就班地學(xué)習(xí)當(dāng)前重要的編程范型。你將會(huì)學(xué)習(xí)7種令人激動(dòng)的語言: Lua 、Factor 、Elixir 、Elm 、Julia 、Idris 和miniKanren。
本書將拓展你的視野,教你如何使用多核和分布來解決問題。在每一種語言中,你將使用構(gòu)成該語言的獨(dú)特技術(shù)來解決一個(gè)不尋常的問題。用Elm而不使用一個(gè)回調(diào)來編寫一款功能完備的游戲,用miniKanren編一個(gè)寫故事的程序,用Lua編寫自己的音樂播放程序,用Julia編寫一個(gè)圖像壓縮程序,用Idris實(shí)現(xiàn)數(shù)學(xué)中的證明,用Factor編寫一個(gè)解謎游戲。讀完本書,你將會(huì)掌握7種完全不同的語言,從其中的每一種語言,都能學(xué)到一些重要的技術(shù)。
Bruce Tate,icanmaketibetter.com的CTO,十多本技術(shù)圖書的作者(包括《Seven Languages in Seven Weeks》)。也是“七周七”系列圖書的編輯。
Fred Daoud 熱愛函數(shù)式編程,他和Jack Moffitt共同編著了《Seven Web
Frameworks in Seven Weeks》。
Ian Dees 在波特蘭市的一家測(cè)試設(shè)備生廠商從事編碼和測(cè)試工作。他是《Cucumber
Recipes》一書的合著者。Jack Moffitt是Mozilla Research的高級(jí)研發(fā)工程師,負(fù)責(zé)用Mozilla的新的Rust語言編寫的一款實(shí)驗(yàn)性的瀏覽器引擎(名為Servo)。
第1章 Lua 1
第一天:開始?xì)v險(xiǎn) 1
本周日程 2
Lua一覽 3
安裝Lua 3
交互式開發(fā) 3
初窺 4
Lua基礎(chǔ) 5
表達(dá)式 6
函數(shù) 7
具名參數(shù) 10
控制流程 10
變量 11
離開REPL 12
第一天我們學(xué)了什么 13
輪到你了 13
第二天:深入了解Table 14
Table當(dāng)作字典用 14
穿著數(shù)組外衣的字典 16
metatables 17
自制面向?qū)ο笙到y(tǒng) 21
協(xié)程 25
多任務(wù) 26
Lua作者Roberto Ierusalimschy
訪談 29
第二天我們學(xué)了什么 30
輪到你了 31
第三天:真實(shí)世界中的Lua 32
制作音樂 33
為歷險(xiǎn)做準(zhǔn)備 33
創(chuàng)建項(xiàng)目 34
添加聲效 36
從音符到歌曲 39
多聲道 43
Canon in D 45
第三天我們學(xué)了什么 46
輪到你了 46
Lua小結(jié) 47
優(yōu)勢(shì) 47
劣勢(shì) 47
終章 48
第2章 Factor 49
第一天:棧,!50
第一天我們學(xué)到了什么 59
第二天:更進(jìn)一步 61
運(yùn)行獨(dú)立的程序 64
寫單元測(cè)試 67
Factor的創(chuàng)建者Slava·Factor的
采訪 69
第二天我們學(xué)到了什么? 70
輪到你了 71
第三天:乘風(fēng)破浪,搏擊長(zhǎng)空 72
元組 72
元組構(gòu)造器 73
為購(gòu)物車結(jié)賬 74
把命令組裝成流水管道 75
重新回顧FizzBuzz游戲 78
與生俱來以下功能 81
編輯器集成 82
演示 83
第三天我們學(xué)了什么 83
輪到你了 84
總結(jié)Factor 84
第3章 Elm 86
第一天:掌握基礎(chǔ) 87
第二天:馴服回調(diào) 97
第三天:一切都是游戲 107
Elm總結(jié) 119
第4章 Elixir 120
第一天:夯實(shí)基礎(chǔ) 121
安裝Elixir 121
所以說……它是Ruby++,
對(duì)嗎 122
不,不是Ruby 122
編寫函數(shù) 124
使用管道組織程序 125
使用模塊 126
命名函數(shù) 127
do構(gòu)造塊 127
使用map 129
list 130
for推導(dǎo) 133
keyword List 134
函數(shù)語法糖 135
第一天我們學(xué)到了什么 135
第二天:控制變化 137
Mix 137
從具體到元 138
使用struct為字段命名 139
創(chuàng)建具體行為 140
為狀態(tài)機(jī)建模 141
添加狀態(tài)機(jī)行為 142
尋找模式 143
編寫測(cè)試 144
使用宏實(shí)現(xiàn)should 145
編寫更多的測(cè)試 146
編寫一個(gè)復(fù)雜的宏 147
理解編譯期流程 148
構(gòu)造一個(gè)骨架 148
理解編譯期流程,第2部分 150
使用狀態(tài)機(jī) 152
第二天我們學(xué)到了什么 152
第三天:衍生和重生 154
衍生進(jìn)程 155
構(gòu)建一個(gè)OTP應(yīng)用 156
在終端中使用OTP 158
可靠性監(jiān)護(hù) 159
第三天我們學(xué)到了什么 161
第三天自習(xí) 161
Exlir總結(jié) 162
優(yōu)勢(shì) 162
弱點(diǎn) 163
最后的思考 163
第5章 Julia 164
第一天:無謂的反抗 165
安裝Julia 165
內(nèi)置類型 166
第一天我們學(xué)到了什么? 175
輪到你了 175
第二天:吸收 176
控制流 176
用戶定義類型和函數(shù) 178
并發(fā) 182
采訪Julia的創(chuàng)始人:Jeff Bezanson, Stefan
Karpinski, Viral Shah, Alan Edelman 185
我們第二天學(xué)到了什么? 186
輪到你了 187
第三天:打成一片 187
轉(zhuǎn)換代碼而不是數(shù)據(jù) 188
圖像切處和切塊 191
第三天我們學(xué)到了什么? 196
輪到你了 196
Julia總結(jié) 197
優(yōu)勢(shì) 197
劣勢(shì) 198
最后的思考 198
第6章 miniKanren 199
第一天:代碼的一致性匹配 199
安裝core.logic 200
目標(biāo)一定要成功 201
使用關(guān)系 202
用因子編程 204
平行宇宙 206
咒語的秘密 207
第一天我們學(xué)到了什么 208
輪到你了 209
第二天:混合邏輯與函數(shù) 210
模式,那里都是模式 210
用上散列圖 212
另一種判定 213
對(duì)David Nolen的采訪 216
第二天我們學(xué)到了什么 217
輪到你了 218
第三天:用邏輯來寫故事 218
用有限域編程 219
神奇的故事 221
第三天我們學(xué)到了什么 228
輪到你了 228
miniKanren的回顧 229
優(yōu)勢(shì) 229
劣勢(shì) 230
寫在最后 230
第7章 Idris 231
第一天:基礎(chǔ) 232
安裝Idris 232
理解基礎(chǔ) 233
原生類型和表達(dá)式 233
函數(shù) 234
定義數(shù)據(jù)類型 236
第一天我們學(xué)到了什么 240
輪到你了 240
第二天:開始使用依賴類型 241
理解依賴類型 241
派生依賴類型 243
閏年里的日期限定 245
第二天我們學(xué)到了什么 248
輪到你了 248
第三天:依賴類型實(shí)踐 249
智能補(bǔ)全 249
證明完畢,親愛的華生 251
交互式證明 252
下一步 254
證明為我們做了什么 256
現(xiàn)實(shí)世界 257
一段亂糟糟的C++代碼 257
指稱設(shè)計(jì) 258
回顧 259
改善 260
輪到你了 261
結(jié)束Idris 262
第8章 總結(jié) 264
起源 264
中央高速公路 265
前沿 267
臟地圖 268
最后的挑戰(zhàn) 270