|
-- 會員 / 註冊 --
|
|
|
|
魔力Haskell ( 簡體 字) |
作者:韓冬 | 類別:1. -> 程式設計 -> 綜合 |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 45172 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:9/1/2016 |
頁數:354 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115432834 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介: 本書是一本由淺入深的Haskell教程。書中首先介紹Haskell的基礎語法和函數式編程的基本概念,以及GHC、GHCi、Cabal等工具的用法;接著按照函子→應用函子→單子的順序介紹Haskell中核心的三大類型類,并以列表單子、Reader單子和State單子為例詳細分析單子類型類的來龍去脈;后介紹Foldable和Traversable類型類、單子變換、GHC的語言擴展和程序標注,以及網絡編程、數據庫、并發并行、序列化/反序列化與泛型編程、異常處理等內容。 |
目錄:第一部分 基礎知識 第1章 基本語法和GHCi 3 1.1 注釋 3 1.2 表達式 3 1.3 聲明 4 1.3.1 類型聲明和綁定聲明 4 1.3.2 模塊聲明和導入聲明 5 1.4 函數 6 1.5 GHCi 8 1.6 初級函數 10 第2章 data和模式匹配 13 2.1 數據聲明data 13 2.2 模式匹配 14 2.2.1 無處不在的模式匹配 15 2.2.2 @pattern 16 2.3 各式各樣的數據類型 16 2.3.1 多構造函數 16 2.3.2 完備性檢查 17 2.3.3 無參數構造函數 18 2.3.4 data與類型變量 18 2.3.5 記錄語法 20 2.4 排版規則 22 第3章 列表、遞歸和盒子比喻 23 3.1 列表 23 3.1.1 等差數列 24 3.1.2 匹配列表 24 3.2 遞歸操作 26 3.3 盒子比喻 30 第4章 元組、類型推斷和高階函數 34 4.1 元組 34 4.2 類型推斷 35 4.3 高階函數 37 4.3.1 拉鏈和zipWith 39 4.3.2 柯里化 41 第5章 常用的高階函數和函數的補充 語法 43 5.1 應用函數$和& 43 5.2 匿名函數 44 5.3 組合函數. 45 5.4 函數的補充語法 46 5.4.1 where 46 5.4.2 guard 47 5.4.3 MultiWayIf 49 5.4.4 where與let 49 5.5 Point free 49 5.6 黑魔法詞匯表 51 第6章 常用的列表操作:映射、過濾、 折疊和掃描 53 6.1 映射 53 6.2 過濾 54 6.3 折疊 55 6.4 掃描 57 6.5 方向是相對的 60 第7章 類型類 62 7.1 實例聲明 62 7.2 類聲明 65 7.3 類型類的實現 66 7.3.1 層級和約束 67 7.3.2 推導類型類 68 7.3.3 Show/Read 69 第8章 數字相關的類型類 71 8.1 順序類 71 8.2 data和類型約束 72 8.3 枚舉類 73 8.4 邊界類 75 8.5 數字類 76 第9章 type、newtype和惰性求值 80 9.1 類型別名type 80 9.2 新類型聲明newtype 81 9.3 惰性求值 84 9.3.1 標記語義、常態和弱常態 87 9.3.2 seq和deepseq 90 第10章 模塊語法以及cabal、Haddock 工具 94 10.1 模塊語法 94 10.2 使用cabal 96 10.2.1 使用cabal安裝依賴 96 10.2.2 項目的cabal配置 98 10.3 Haddock 101 第二部分 重要的類型和類型類 第11章 函子 107 11.1 容器抽象 107 11.2 范疇 110 11.3 Identity和Const 115 11.4 IO函子 117 第12章 透鏡組 118 12.1 getter和setter 118 12.2 透鏡組 120 12.3 view、set和over函數 122 12.3.1 over函數 122 12.3.2 set函數 124 12.3.3 view函數 125 12.4 函數庫 128 第13章 應用函子 129 13.1 函子的局限 129 13.2 什么是函子 133 13.2.1 Reader應用函子 134 13.2.2 自然升格 135 13.3 IO應用函子 138 第14章 單位半群和一些有趣的應用 函子 139 14.1 單位半群 139 14.1.1 Endo單位半群 141 14.1.2 自由單位半群 142 14.1.3 逆 144 14.2 當單位半群遇上應用函子 145 14.2.1 Const a的應用函子實例 145 14.2.2 選擇應用函子 146 14.2.3 拉鏈應用函子 147 第15章 解析器 149 15.1 參數解析 149 15.2 optparse-applicative 151 15.3 選擇解析 153 第16章 單子 158 16.1 應用函子的局限 158 16.2 什么是單子 159 16.2.1 粘合函數 161 16.2.2 do語法糖 163 16.3 IO單子 165 第17章 八皇后問題和列表單子 168 17.1 列表單子與數組歸納 168 17.2 八皇后問題 169 17.3 MonadPlus 171 17.4 結構控制函數 173 17.4.1 sequence/sequence_ 173 17.4.2 mapM/mapM_ 174 17.4.3 replicateM/replicateM_ 175 17.4.4 forever 176 17.4.5 filterM 176 17.4.6 foldM/foldM_ 177 第18章 Reader單子 179 18.1 (-)a的單子實例聲明 179 18.2 模板渲染 180 18.3 Reader新類型 185 第19章 State單子 187 19.1 什么是State單子 187 19.2 隨機數 192 19.3 簡易計算器 195 第20章 IO和它的伙伴們 197 20.1 IO單子的本質 197 20.2 基本IO操作 199 20.3 IO中的變量 202 20.4 forkIO 203 20.5 ST單子 204 20.6 后門函數 206 第三部分 高級類型類和項目實踐 第21章 語言擴展和程序標注 211 21.1 語言擴展 211 21.2 嚴格求值數據項 214 21.3 惰性模式 214 21.4 程序標注 215 21.5 編譯選項 217 21.6 運行分析 218 第22章 Foldable和Traversable 221 22.1 Foldable 221 22.2 折疊與單位半群 224 22.3 Traversable 226 22.4 推導規則 230 22.5 Data.Coerce 231 第23章 列表、數組和散列表 233 23.1 列表 233 23.2 數組 236 23.3 散列表 242 第24章 單子變換 245 24.1 Kleisli范疇 245 24.2 ReaderT 246 24.3 Identity和IdentityT 248 24.4 StateT 250 24.5 RandT 253 第25章 單子變換的升格操作 256 25.1 MonadIO 258 25.2 MonadState和MonadReader 258 25.3 類型家族 260 25.4 Lazy StateT和Strict StateT 262 25.5 Writer單子 263 第26章 高效字符串處理 266 26.1 bytestring函數庫 266 26.1.1 Lazy ByteString 267 26.1.2 ByteString Builder 268 26.2 text和utf8-string函數庫 272 26.3 mono-traversable函數庫 274 第27章 網絡編程 276 27.1 wai/warp 276 27.2 wai-extra 279 27.3 HTTP的單子抽象 280 27.4 WebSocket編程 281 27.5 Socket編程 283 第28章 Haskell與數據庫 286 28.1 persistent 286 28.2 esqueleto 292 第29章 模板編程 296 29.1 什么是模板 296 29.2 Q單子 299 29.3 拼接 301 29.4 reify 303 第30章 并發和并行編程 306 30.1 運行時工作原理 306 30.2 并行編程 308 30.3 并發編程 310 30.3.1 MVar 311 30.3.2 STM 314 30.3.3 aysnc 316 第31章 高級類型編程 317 31.1 Typeable和Dynamic 317 31.2 存在類型 320 31.3 類型家族、數據家族和GADT 321 31.3.1 類型家族 321 31.3.2 數據家族 324 31.3.3 GADT 325 31.4 數據類別DataKinds 327 第32章 序列化/反序列化與泛型編程 331 32.1 aeson函數庫 331 32.1.1 使用模板編程自動生成ToJSON/FromJSON實例 334 32.1.2 使用泛型提供的ToJSON/FromJSON 335 32.2 泛型 336 第33章 Haskell中的異常處理 342 33.1 使用Either/Maybe表示異常 342 33.2 運行時異常 343 33.2.1 異步異常 346 33.2.2 資源的清理和釋放 348 33.3 純函數中的異常處理 349 33.4 異常和單子變換 350 33.4.1 exceptions 350 33.4.2 monad-control 351 33.5 常見的異常處理問題 353 |
序: |
|