這類主流語言中,不少本身並不是以函數式為主要典範(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 區塊與 <- 綁定
# 發掘具有組合性的行為
目前為自由工作者,喜好研究程式語言、框架、社群,