注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計程序設計綜合Haskell函數式編程入門

Haskell函數式編程入門

Haskell函數式編程入門

定 價:¥59.00

作 者: 張淞 著
出版社: 人民郵電出版社
叢編項:
標 簽: 計算機/網絡 軟件工程/開發(fā)項目管理

購買這本書可以去


ISBN: 9787115338013 出版時間: 2014-03-01 包裝: 平裝
開本: 16開 頁數: 360 字數:  

內容簡介

  《Haskell函數式編程入門》是一本講解Haskell這門經過精心設計和錘煉的純函數式編程語言的書,同時也是一本通過Haskell來講解函數式編程的方法與思想的書。全書共分三個部分。第一部分介紹函數式編程在解決數學與算法問題的精簡與直觀的特色,讓不熟悉Haskell的讀者對其建立初步的了解,同時通過解決一些算法問題,如裴波那契數列、八皇后問題、排序問題、24點等,引發(fā)一些對函數式編程方式的思考;第二部分介紹一些略微深入的Haskell內容,包括函子、Monoid、IO與Monad轉換器等;最后一部分則涉及快速測試、惰性求值和并行編程等主題?!禜askell函數式編程入門》既適合對Hasell和函數式編程感興趣的程序員閱讀,又適合作為Haskell語言入門教程,供計算機科學與數學專業(yè)的學生參考。

作者簡介

暫缺《Haskell函數式編程入門》作者簡介

圖書目錄

目 錄
第1章 Haskell簡介 1
1.1 Haskell的由來 1
1.2 Haskell編譯器的安裝以及 編寫環(huán)境 3
1.3 GHCi的使用 4
1.3.1 GHCi中的命令 5
1.3.2 在GHCi中調用函數 5
1.4?。甴s和.lhs文件、注釋與庫函數 7
1.5 第一個Haskell程序HelloWorld! 7
本章小結 8
第2章 類型系統(tǒng)和函數 9
2.1 Haskell的類型與數據 9
2.1.1 Haskell常用數據類型 9
2.1.2 函數類型 14
2.1.3 類型的別名 17
2.1.4 類型的重要性 18
2.2 Haskell中的類型類 19
2.2.1 相等類型類:Eq 20
2.2.2 有序類型類:Ord 20
2.2.3 枚舉類型類:Emum 21
2.2.4 有界類型類:Bounded 21
2.2.5 數字類型類:Num 22
2.2.6 可顯示類型類:Show 25
2.2.7 小結 25
2.3 Haskell中的函數 26
2.3.1 Haskell中的值 26
2.3.2 函數思想入門 27
2.3.3 函數的基本定義格式 28
2.3.4 λ表達式 30
2.3.5 參數的綁定 34
2.4 Haskell中的表達式 35
2.4.1 條件表達式 35
2.4.2 情況分析表達式 36
2.4.3 守衛(wèi)表達式 37
2.4.4 模式匹配 37
2.4.5 運算符與函數 38
2.4.6 運算符與自定義運算符 38
本章小結 41
第3章 基于布爾值的函數 42
3.1 關鍵字module與import簡介 42
3.2 簡易布爾值的函數 43
3.3 與非門和或非門 46
本章小結 47
第4章 庫函數及其應用 48
4.1 預加載庫函數 48
4.1.1 常用函數 48
4.1.2 基于列表的函數 50
4.1.3 定義歷法公式 57
4.1.4 字符串處理的函數 58
4.2 字符與位函數庫簡介 60
4.2.1 Data.Char 60
4.2.2 Data.Bits 60
本章小結 61
第5章 遞歸函數 62
5.1 遞歸函數的概念 62
5.2 簡單遞歸函數 64
5.3 擴展遞歸與尾遞歸 66
5.4 互調遞歸 68
5.5 麥卡錫的91函數 69
5.6 斐波那契數列 69
5.7 十進制數字轉成羅馬數字 73
5.8 二分法查找 74
5.9 漢諾塔 75
5.10 排序算法 78
5.10.1 插入排序 78
5.10.2 冒泡排序 81
5.10.3 選擇排序 83
5.10.4 快速排序 84
5.10.5 歸并排序 86
小結 91
5.11 遞歸基本條件與程序終止 91
5.12 遞歸與不動點 92
5.13 無基本條件遞歸和惰性求值 94
本章小結 96
第6章 列表內包 97
6.1 列表生成器 97
6.2 素數相關趣題 99
6.3 凱撒加密 101
6.3.1 加密 102
6.3.2 解密 102
6.4 排列與組合問題 104
6.4.1 排列問題 104
6.4.2 錯位排列問題 105
6.4.3 組合問題 106
6.5 八皇后問題 107
6.6 計算矩陣乘法 111
6.7 最短路徑算法與矩陣乘法 112
本章小結 116
第7章 高階函數與復合函數 117
7.1 簡單高階函數 117
7.2 折疊函數foldr與foldl 119
7.3 mapAccumL與mapAccumR函數 125
7.4 復合函數 126
本章小結 128
第8章 定義數據類型 129
8.1 數據類型的定義 129
8.1.1 枚舉類型 129
8.1.2 構造類型 132
8.1.3 參數化類型 134
8.1.4 遞歸類型 138
8.1.5 雜合定義類型 140
8.2 類型的同構 142
8.3 使用newtype定義類型 146
8.4 數學歸納法的有效性 148
8.5 樹 150
8.6 卡特蘭數問題 151
8.7 霍夫曼編碼 152
8.8 解24點 154
8.9 zipper 157
8.10 一般化的代數數據類型 159
8.11 類型的kind 162
8.11.1 類型的kind 162
8.11.2 空類型的聲明 164
本章小結 165
第9章 定義類型類 166
9.1 定義類型類 166
9.2 Haskell中常見類型類 169
9.2.1 常用類型類 169
9.2.2 Functor 171
9.2.3 Applicative 173
9.2.4 Alternative 177
9.2.5 簡易字符識別器 179
9.2.6 Read類型類 182
9.2.7 單位半群(Monoid) 182
9.2.8 Foldable與Monoid類型類 184
9.2.9 小結 186
9.3 類型類中的類型依賴 187
9.4 類型類中的關聯(lián)類型 192
9.5 定長列表 193
9.6 運行時重載 197
9.7 Existential類型 198
本章小結 199
第10章 Monad初步 201
10.1 Monad簡介 201
10.2 從Identity Monad開始 204
10.3 Maybe Monad 206
10.4 Monad定律 209
10.5 列表Monad 210
10.6 Monad相關運算符 210
10.7 MonadPlus 211
10.8 Functor、Applicative與Monad的關系 213
本章小結 215
第11章 系統(tǒng)編程及輸入/輸出 216
11.1 不純函數與副作用 216
11.2 IO Monad 218
11.3 輸入/輸出處理 222
11.3.1 Control.Monad中的函數 222
11.3.2 系統(tǒng)環(huán)境變量與命令行參數 224
11.3.3 數據的讀寫 225
11.3.4 格式化輸出printf函數 228
11.3.5 printf函數的簡易實現 229
11.4 星際譯王詞典 233
11.4.1 二分法查找 234
11.4.2 散列表的使用 237
11.5 簡易異常處理 239
11.6 Haskell中的時間 244
本章小結 245
第12章 記錄器Monad、讀取器Monad、狀態(tài)Monad 246
12.1 記錄器Monad 246
12.1.1 MonadWriter 248
12.1.2 記錄歸并排序過程 249
12.2 讀取器Monad 250
12.2.1 MonadReader 251
12.2.2 變量環(huán)境的引用 252
12.3 狀態(tài)Monad 253
12.3.1 狀態(tài)Monad標簽器 254
12.3.2 用狀態(tài)Monad實現棧結構 255
12.3.3 狀態(tài)Monad、FunApp單位半群和讀取器Monad的關系 257
12.3.4 MonadState 258
12.3.5 基于棧的計算器 258
12.4 隨機數的生成 270
本章小結 271
第13章 Monad轉換器 273
13.1 從IdentityT Monad轉換器開始 273
13.2 Monad轉換器組合與復合Monad的區(qū)別 276
13.3 Monad轉換器的組合順序 278
13.4 lift與liftIO 281
13.5 簡易Monad編譯器 282
13.6 語法分析器Monad組合子 286
13.6.1 簡易語法分析器的實現 287
13.6.2 Parsec庫簡介 291
13.6.3 上下文無關文法 296
13.6.4 基于語法分析器的計算器 300
本章小結 304
第14章 QuickCheck簡介 305
14.1 測試函數屬性 305
14.2 測試數據生成器 308
本章小結 310
第15章 惰性求值簡介 311
15.1 λ演算簡介 311
15.2 ⊥Bottom 313
15.3 表達式形態(tài)和thunk 314
15.3.1 WHNF、HNF與NF 314
15.3.2 thunk與嚴格求值 315
15.4 求值策略 319
15.4.1 引值調用 319
15.4.2 按名調用 320
15.4.3 常序求值 320
15.5 惰性求值 321
15.6 嚴格模式匹配與惰性模式匹配 322
第16章 并行與并發(fā)編程 324
16.1 確定性的并行計算 325
16.2 輕量級線程 333
16.2.1 調度的不確定性 333
16.2.2 基本線程通信 334
16.2.3 信道 337
16.2.4 簡易聊天服務器 337
16.3 軟件事務內存 341
16.3.1 軟件事務內存簡介 341
16.3.2 軟件事務內存的使用 343
16.3.3 哲學家就餐問題 347
16.3.4 圣誕老人問題 350
16.4 異步并發(fā)庫簡介 355
本章小結 357
參考文獻 358
后記 359

本目錄推薦

掃描二維碼
Copyright ? 讀書網 www.leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號