編輯推薦
暢銷技術圖書“七周七”係列新佳作
深入研習對未來編程具有重要意義的7種語言
Lua、Factor、Elixir、Elm、Julia、Idris和MiniKanren
當你深入學習本書所介紹的每一種語言時,你將能夠對語言的抽象和原理一窺門徑,而這對於你用任何語言編寫更好的程序都頗有幫助。
通過“七周七”係列中的這本新圖書,你可以按部就班地學習當前重要的編程範型。你將會學習7種令人激動的語言: Lua 、Factor 、Elixir 、Elm 、Julia 、Idris 和miniKanren。
本書將拓展你的視野,教你如何使用多核和分布來解決問題。在每一種語言中,你將使用構成該語言的獨特技術來解決一個不尋常的問題。用Elm而不使用一個迴調來編寫一款功能完備的遊戲,用miniKanren編一個寫故事的程序,用Lua編寫自己的音樂播放程序,用Julia編寫一個圖像壓縮程序,用Idris實現數學中的證明,用Factor編寫一個解謎遊戲。讀完本書,你將會掌握7種完全不同的語言,從其中的每一種語言,都能學到一些重要的技術。
內容簡介
本書帶領讀者認識和學習瞭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章 Lua 1
第一天:開始曆險 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
七周七語言 捲2 下載 mobi epub pdf txt 電子書