七周七語言 理解多種編程範型pdf

永利注册送34元
永利注册送34元
永利注册送34元
11220
文章
1764
評論
2018年12月28日17:00:28 評論 478
摘要

帶你輕鬆入門七種先鋒語言
開闊視野,享受更多編程樂趣

七周七語言 理解多種編程範型 內容簡介

從計算機發展史早期的Cobol、Fortran到後來的C、Java,編程語言的家族不斷壯大。除了這些廣為人知的語言外,還湧現了Erlang、Ruby等後起之秀,它們雖被喻為小眾語言,但因其獨特性也吸引了為數不少的追隨者。

Bruce A·Tate是軟件行業的一名老兵,他有一個宏偉目標:用一本書的篇幅切中要害地探索七種不同的語言。本書就是他的成果。書中介紹了Ruby、Io、Prolog、Scala、Erlang、Clojure和Haskell這七種語言,關注每一門語言的精髓和特性,重點解決如下問題:這門語言的類型模型是什麽,編程範式是什麽,如何與其交互,有哪些決策構造和核心數據結構,有哪些獨特的核心特性。

在這個飛速發展的信息時代,程序員僅僅掌握甚至精通一門語言是遠遠不夠的。了解多門語言蘊涵的思維方式,在編碼中互相借鑒,再挑出一兩門對自己口味的語言深入學習,這些已經成為在軟件行業中安身立命之本。從這個意義上說,每個程序員都應該看看這本《七周七語言》。

七周七語言 理解多種編程範型 目錄

第1章 簡介 1

1.1 不走尋常路 1

1.2 語言 2

1.3 誰應該買這本書 4

1.3.1 學會如何學習 4

1.3.2 亂世英雄 4

1.4 誰不應該買這本書 5

1.4.1 超越語法 5

1.4.2 不是安裝指南 6

1.4.3 不是編程參考 6

1.4.4 嚴格督促 6

1.5 最後一擊 7

第2章 Ruby 8

2.1 Ruby簡史 9

2.2 第一天:找個保姆 10

2.2.1 快速起步 10

2.2.2 從命令行執行Ruby 10

2.2.3 Ruby的編程模型 11

2.2.4 判斷 12

2.2.5 鴨子類型 15

2.2.6 第一天我們學到了什麽 16

2.2.7 第一天自習 16

2.3 第二天:從天而降 17

2.3.1 定義函數 17

2.3.2 數組 17

2.3.3 散列表 19

2.3.4 代碼塊和yield 20

2.3.5 定義類 22

2.3.6 編寫Mixin 25

2.3.7 模塊、可枚舉和集合 26

2.3.8 第二天我們學到了什麽 27

2.3.9 第二天自習 28

2.4 第三天:重大改變 28

2.4.1 打開類 29

2.4.2 使用method_missing 30

2.4.3 模塊 31

2.4.4 第三天我們學到了什麽 35

2.4.5 第三天自習 35

2.5 趁熱打鐵 35

2.5.1 核心優勢 35

2.5.2 不足之處 37

2.5.3 最後思考 37

第3章 Io 38

3.1 Io簡介 38

3.2 第一天:逃學吧,輕鬆一下 39

3.2.1 開場白 39

3.2.2 對象、原型和繼承 40

3.2.3 方法 43

3.2.4 列表和映射 44

3.2.5 true、false、nil以及單例 46

3.2.6 Steve Dekorte訪談錄 48

3.2.7 第一天我們學到了什麽 49

3.2.8 第一天自習 50

3.3 第二天:香腸大王 50

3.3.1 條件和循環 51

3.3.2 運算符 52

3.3.3 消息 54

3.3.4 反射 56

3.3.5 第二天我們學到了什麽 57

3.3.6 第二天自習 57

3.4 第三天:花車遊行和各種奇妙經曆 58

3.4.1 領域特定語言 58

3.4.2 Io的method_missing 60

3.4.3 並發 62

3.4.4 第三天我們學到了什麽 64

3.4.5 第三天自習 64

3.5 趁熱打鐵 65

3.5.1 核心優勢 65

3.5.2 不足之處 66

3.5.3 最後思考 66

第4章 Prolog 67

4.1 關於Prolog 68

4.2 第一天:一名優秀的司機 68

4.2.1 基本概況 68

4.2.2 基本推論和變量 69

4.2.3 填空 70

4.2.4 合一,第一部分 73

4.2.5 實際應用中的Prolog 75

4.2.6 第一天我們學到了什麽 77

4.2.7 第一天自習 77

4.3 第二天:離瓦普納法官開演還有15分鍾 78

4.3.1 遞歸 78

4.3.2 列表和元組 79

4.3.3 列表與數學運算 82

4.3.4 在兩個方向上使用規則 83

4.3.5 第二天我們學到了什麽 86

4.3.6 第二天自習 87

4.4 第三天:維加斯的爆發 87

4.4.1 解決數獨問題 87

4.4.2 八皇後問題 91

4.4.3 第三天我們學到了什麽 96

4.4.4 第三天自習 96

4.5 趁熱打鐵 96

4.5.1 核心優勢 97

4.5.2 不足之處 97

4.5.3 最後思考 98

第5章 Scala 99

5.1 關於Scala 99

5.1.1 與Java的密切關係 100

5.1.2 沒有盲目崇拜 100

5.1.3 Martin Odersky訪談錄 100

5.1.4 函數式編程與並發 101

5.2 第一天:山丘上的城堡 102

5.2.1 Scala 類型 102

5.2.2 表達式與條件 103

5.2.3 循環 105

5.2.4 範圍與元組 107

5.2.5 Scala中的類 109

5.2.6 擴展類 111

5.2.7 第一天我們學到了什麽 113

5.2.8 第一天自習 114

5.3 第二天:修剪灌木叢和其他新把戲 114

5.3.1 對比var和val 115

5.3.2 集合 115

5.3.3 集合與函數 119

5.3.4 第二天我們都學到了什麽 124

5.3.5 第二天自習 124

5.4 第三天:剪斷絨毛 125

5.4.1 XML 125

5.4.2 模式匹配 126

5.4.3 並發 128

5.4.4 實際中的並發 129

5.4.5 第三天我們學到了什麽 132

5.4.6 第三天自習 132

5.5 趁熱打鐵 133

5.5.1 核心優勢 133

5.5.2 不足之處 134

5.5.3 最後思考 135

第6章 Erlang 136

6.1 Erlang簡介 136

6.1.1 為並發量身打造 137

6.1.2 Joe Armstrong博士訪談錄 138

6.2 第一天:以常人麵目出現 139

6.2.1 新手上路 140

6.2.2 注釋、變量和表達式 140

6.2.3 原子、列表和元組 141

6.2.4 模式匹配 142

6.2.5 函數 144

6.2.6 第一天我們學到了什麽 147

6.2.7 第一天自習 147

6.3 第二天:改變結構 148

6.3.1 控製結構 148

6.3.2 匿名函數 150

6.3.3 列表和高階函數 150

6.3.4 列表的一些高級概念 153

6.3.5 第二天我們學到了什麽 156

6.3.6 第二天自習 157

6.4 第三天: 紅藥丸 157

6.4.1 基本並發原語 157

6.4.2 同步消息 160

6.4.3 鏈接進程以獲得可靠性 162

6.4.4 第三天我們學到了什麽 167

6.4.5 第三天自習 167

6.5 趁熱打鐵 167

6.5.1 核心優勢 168

6.5.2 不足之處 169

6.5.3 最後思考 169

第7章 Clojure 170

7.1 Clojure入門 170

7.1.1 一切皆Lisp 170

7.1.2 JVM 171

7.1.3 為並發更新 171

7.2 第一天:訓練Luke 172

7.2.1 調用基本函數 172

7.2.2 字符串和字符 174

7.2.3 布爾值和表達式 175

7.2.4 列表、映射表、集合以及向量 176

7.2.5 定義函數 179

7.2.6 綁定 180

7.2.7 匿名函數 182

7.2.8 Rich Hickey訪談錄 183

7.2.9 第一天我們學到了什麽 184

7.2.10 第一天自習 185

7.3 第二天:Yoda與原力 185

7.3.1 用loop和recur遞歸 185

7.3.2 序列 186

7.3.3 延遲計算 189

7.3.4 defrecord和protocol 191

7.3.5 宏 193

7.3.6 第二天我們學到了什麽 194

7.3.7 第二天自習 195

7.4 第三天:一瞥魔鬼 195

7.4.1 引用和事務內存 196

7.4.2 使用原子 197

7.4.3 使用代理 198

7.4.4 future 200

7.4.5 還差什麽 200

7.4.6 第三天我們學到了什麽 201

7.4.7 第三天自習 201

7.5 趁熱打鐵 201

7.5.1 Lisp悖論 202

7.5.2 核心優勢 202

7.5.3 不足之處 203

7.5.4 最後思考 204

第8章 Haskell 205

8.1 Haskell簡介 205

8.2 第一天:邏輯 206

8.2.1 表達式和基本類型 206

8.2.2 函數 208

8.2.3 元組和列表 211

8.2.4 生成列表 214

8.2.5 Philip Wadler訪談錄 217

8.2.6 第一天我們學到了什麽 218

8.2.7 第一天自習 218

8.3 第二天:Spock的超凡力量 218

8.3.1 高階函數 219

8.3.2 偏應用函數和柯裏化 220

8.3.3 惰性求值 221

8.3.4 Simon Peyton-Jones訪談錄 223

8.3.5 第二天我們學到了什麽 224

8.3.6 第二天自習 225

8.4 第三天:心靈融合 226

8.4.1 類與類型 226

8.4.2 monad 231

8.4.3 第三天我們學到了什麽 236

8.4.4 第三天自習 237

8.5 趁熱打鐵 237

8.5.1 核心優勢 237

8.5.2 不足之處 238

8.5.3 最後思考 239

第9章 落幕時分 240

9.1 編程模型 240

9.1.1 麵向對象(Ruby、Scala) 241

9.1.2 原型編程(Io) 241

9.1.3 約束-邏輯編程(Prolog) 241

9.1.4 函數式編程(Scala、Erlang、Clojure、Haskell) 241

9.1.5 範型演進之路 242

9.2 並發 242

9.2.1 控製可變狀態 243

9.2.2 Io、Erlang和Scala中的actor 243

9.2.3 future 243

9.2.4 事務型內存 243

9.3 編程結構 244

9.3.1 列表解析 244

9.3.2 monad 244

9.3.3 匹配 245

9.3.4 合一 246

9.4 發現自己的旋律 246

附錄 參考書目 247

七周七語言 理解多種編程範型 精彩文摘

2.2.3 Ruby的編程模型

當你新接觸一門語言的時候,有些問題是需要首先去思考的,“這門語言的編程模型是什麽”正是其中之一。這問題有時不那麽好回答。你可能早就接觸過C、Fortran、Pascal這類過程式語言。現如今,大部分人在用麵向對象語言,不過它們大都帶有過程式語言要素,比如,數字4在Java中就不是對象。你也許衝著函數式編程語言買的這本書。但某些函數式語言(如Scala)還加入了一些麵向對象思想,可以說它們混合了多種編程模型。另外,也有很多其他編程模型。基於棧的語言(如PostScript或Forth),使用一個或多個棧作為該語言的核心特征。基於邏輯的語言(如Prolog),是以規則(rule)為中心建立起來的。原型語言(如Io、Lua和Self)用對象而不用類來作為定義對象甚至繼承的基礎。

永利注册送34元:七周七語言 理解多種編程範型pdf

繼續閱讀
資源地址:用心發表評論,回複即可查看(字數限製至少10字以上)。
  • 我的微信
  • 掃一掃加好友
  • weinxin
  • 微信公眾號
  • 掃一掃關注
  • weinxin
深度學習原理與TensorFlow實踐pdf 程序設計

深度學習原理與TensorFlow實踐pdf

深度學習原理與TensorFlow實踐 作者:喻儼,莫瑜,王琛,胡振邦,高傑 深度學習原理與TensorFlow實踐 出版社:電子工業出版社 深度學習原理與TensorFlow實踐 內容簡介 《深度學...
Python量化交易實戰epub 程序設計

Python量化交易實戰epub

Python量化交易實戰 作者:王曉華 Python量化交易實戰 出版社:清華大學出版社 Python量化交易實戰 內容簡介 在目前不斷變化、蓬勃發展的中國資本市場,量化投資作為新興的投資方法,引來越...
現代API 通往架構師之門epub 程序設計

現代API 通往架構師之門epub

現代API 通往架構師之門 作者:李泉 現代API 通往架構師之門 出版社:清華大學出版社 現代API 通往架構師之門 內容簡介 本書首先回顧係統集成及服務的曆史,對其核心概念和核心思想進行重新闡述;...
匿名

發表評論

匿名網友 填寫信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: