本書(shū)帶領(lǐng)讀者認(rèn)識(shí)和學(xué)習(xí)了7種編程語(yǔ)言,旨在幫助讀者探索更為強(qiáng)大的編程工具。
本書(shū)延續(xù)了同系列的暢銷(xiāo)書(shū)《七周七語(yǔ)言》《七周七數(shù)據(jù)庫(kù)》和《七周七Web開(kāi)發(fā)框架》的體例和風(fēng)格。全書(shū)共8章,前7章介紹了Lua、Factor、Elm、Elixir、Julia、miniKanren和Idris共計(jì)7種編程語(yǔ)言,后一章總結(jié)回顧了所有的知識(shí)點(diǎn)。書(shū)中對(duì)每一種編程語(yǔ)言的介紹,都為編程開(kāi)發(fā)帶來(lái)了獨(dú)特而強(qiáng)大的思路。除此之外,書(shū)中還提供了一系列代碼示例和在線(xiàn)資源以供參考。
本書(shū)適合有一定基礎(chǔ)的開(kāi)發(fā)人員閱讀,能夠幫助讀者拓寬思路,激發(fā)更多的靈感。
Bruce Tate,icanmaketibetter.com的CTO,十多本技術(shù)圖書(shū)的作者(包括《Seven Languages in Seven Weeks》)。也是“七周七”系列圖書(shū)的編輯。
Fred Daoud 熱愛(ài)函數(shù)式編程,他和Jack Moffitt共同編著了《Seven Web
Frameworks in Seven Weeks》。
Ian Dees 在波特蘭市的一家測(cè)試設(shè)備生廠(chǎng)商從事編碼和測(cè)試工作。他是《Cucumber
Recipes》一書(shū)的合著者。Jack Moffitt是Mozilla Research的高級(jí)研發(fā)工程師,負(fù)責(zé)用Mozilla的新的Rust語(yǔ)言編寫(xiě)的一款實(shí)驗(yàn)性的瀏覽器引擎(名為Servo)。
第1章 Lua 1
第一天:開(kāi)始?xì)v險(xiǎn) 1
本周日程 2
Lua一覽 3
安裝Lua 3
交互式開(kāi)發(fā) 3
初窺 4
Lua基礎(chǔ) 5
表達(dá)式 6
函數(shù) 7
具名參數(shù) 10
控制流程 10
變量 11
離開(kāi)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
訪(fǎng)談 29
第二天我們學(xué)了什么 30
輪到你了 31
第三天:真實(shí)世界中的Lua 32
制作音樂(lè) 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
寫(xiě)單元測(cè)試 67
Factor的創(chuàng)建者Slava·Factor的
采訪(fǎng) 69
第二天我們學(xué)到了什么? 70
輪到你了 71
第三天:乘風(fēng)破浪,搏擊長(zhǎng)空 72
元組 72
元組構(gòu)造器 73
為購(gòu)物車(chē)結(jié)賬 74
把命令組裝成流水管道 75
重新回顧FizzBuzz游戲 78
與生俱來(lái)以下功能 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
所以說(shuō)……它是Ruby++,
對(duì)嗎 122
不,不是Ruby 122
編寫(xiě)函數(shù) 124
使用管道組織程序 125
使用模塊 126
命名函數(shù) 127
do構(gòu)造塊 127
使用map 129
list 130
for推導(dǎo) 133
keyword List 134
函數(shù)語(yǔ)法糖 135
第一天我們學(xué)到了什么 135
第二天:控制變化 137
Mix 137
從具體到元 138
使用struct為字段命名 139
創(chuàng)建具體行為 140
為狀態(tài)機(jī)建!141
添加狀態(tài)機(jī)行為 142
尋找模式 143
編寫(xiě)測(cè)試 144
使用宏實(shí)現(xiàn)should 145
編寫(xiě)更多的測(cè)試 146
編寫(xiě)一個(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
第一天:無(wú)謂的反抗 165
安裝Julia 165
內(nèi)置類(lèi)型 166
第一天我們學(xué)到了什么? 175
輪到你了 175
第二天:吸收 176
控制流 176
用戶(hù)定義類(lèi)型和函數(shù) 178
并發(fā) 182
采訪(fǎng)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
咒語(yǔ)的秘密 207
第一天我們學(xué)到了什么 208
輪到你了 209
第二天:混合邏輯與函數(shù) 210
模式,那里都是模式 210
用上散列圖 212
另一種判定 213
對(duì)David Nolen的采訪(fǎng) 216
第二天我們學(xué)到了什么 217
輪到你了 218
第三天:用邏輯來(lái)寫(xiě)故事 218
用有限域編程 219
神奇的故事 221
第三天我們學(xué)到了什么 228
輪到你了 228
miniKanren的回顧 229
優(yōu)勢(shì) 229
劣勢(shì) 230
寫(xiě)在最后 230
第7章 Idris 231
第一天:基礎(chǔ) 232
安裝Idris 232
理解基礎(chǔ) 233
原生類(lèi)型和表達(dá)式 233
函數(shù) 234
定義數(shù)據(jù)類(lèi)型 236
第一天我們學(xué)到了什么 240
輪到你了 240
第二天:開(kāi)始使用依賴(lài)類(lèi)型 241
理解依賴(lài)類(lèi)型 241
派生依賴(lài)類(lèi)型 243
閏年里的日期限定 245
第二天我們學(xué)到了什么 248
輪到你了 248
第三天:依賴(lài)類(lèi)型實(shí)踐 249
智能補(bǔ)全 249
證明完畢,親愛(ài)的華生 251
交互式證明 252
下一步 254
證明為我們做了什么 256
現(xiàn)實(shí)世界 257
一段亂糟糟的C++代碼 257
指稱(chēng)設(shè)計(jì) 258
回顧 259
改善 260
輪到你了 261
結(jié)束Idris 262
第8章 總結(jié) 264
起源 264
中央高速公路 265
前沿 267
臟地圖 268
最后的挑戰(zhàn) 270