Haskell Tutorial

· 自行出版
5.0
5 reviews
Ebook
119
Pages

About this ebook

函數式程式設計(Functional programming)已經歷經時代的考驗,這年頭做為一個開發者,或多或少都有聽過函數式程式設計這個名詞,不少主流語言中,也已經或逐步出現函數式程式設計的基礎元素,就連 Java 這個保守的語言,在 Java 8 中,除了 Lambda 語法本身具有一級函式(First class function)概念之外,也突然出現了不少函數式概念的 API。

這類主流語言中,不少本身並不是以函數式為主要典範(Paradigm),為了讓函數式元素在其本身中不至於過於突兀,這類元素多多少少都有經過一些調整,這類調整是必要的,這也是函數式程式設計得以逐漸為開發者接受的主因之一,經過調整之後,才使得讓這類元素得以成為開發者使用的選項之一。

然而,也正因為經過調整,在試圖從這類語言中探討函數式概念時,總有種朦朦朧朧看不清楚真貌的感覺,那麼,來學習一門純函數式語言如何?這就成了我想撰寫 Haskell Tutorial 一開始的動機。

實際上,已經有不少 Haskell 的好書,像是《Learn You a Haskell for Great Good!》,線上觀看是免費的,如果想購買電子書或實體書也行,中文翻譯為《Haskell 趣學指南》;其他書籍像是《Real World Haskell》也有線上版、電子書、實體書的選擇。

自己想來寫寫看,無非就是想整理一下這幾年的心得,用自己的順序來構築一個路徑。

-- 目錄 --

# 關於 Haskell Tutorial
# 起步走
## 哈囉!世界!
## 一絲不苟的型態系統## 初探代數與函式

# 從函式開始 
## 這裏,那裏,到處都是函式
## 如喝水般自然的高階函式
## 從 List 處理初試函數式風格
## filter、map、fold 模式

# 從入門到進階
## 懶惰是美德之一
## 最代表宣告式的 List Comprehension
## 從 Tuple 初試模式比對
## case、let 、where 與 guard
## 從 lambda 到函式合成

# 深入資料型態
## 正式入門代數資料型態
## 減輕型態負擔的型態參數
## Typeclass 定義、實作與衍生
## Record 語法、Type 同義詞

# 模組
## 定義與使用模組
## 認識 Data.List 模組
## Data.Set 與 Data.Map 模組

# 銜接兩個世界
## 初探 IO 型態
## 來寫些迴圈吧!

# 錯誤處理
## Maybe 有無、Either 對錯
## Exception 的 catch 與 handle
## 拋出與自訂 Exception

# Functor、Applicative 到 Monad
## 可被映射盒中物的 Functor
## Functor 的 fmap 行為
## 可直接函式套用的 Applicative
## 活用 Applicative 的 pure 與 <*>
## 一個型態的 newtype
## 解決巢狀結構的 Monad
## do 區塊與 <- 綁定

# 發掘具有組合性的行為

Ratings and reviews

5.0
5 reviews

About the author

目前為自由工作者,喜好研究程式語言、框架、社群,從中學習設計、典範及文化。閒暇之餘 記錄所學,技術文件涵蓋 C/C++, Java, Ruby/Rails, Python, JavaScript, Haskell 等多個領域。

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.