學習 Haskell 的十本好書(上)
學習 Haskell 是條漫長又艱辛的道路,在學習過程中,隨身總會攜帶著幾本,可以應付不同時期需求的讀物,已經有人列出十本於不同領域和層次的書藉,試著翻譯 Top 10 Books To Learn Haskell Programming 這篇文章。
進入正文吧!
函數編程有趣地方,是能夠快速成型以及擴展新想法,但對毫無經驗新手而言,不容易去學習。剛開始使用程序編程的知識去開發很容易,可是一旦轉換到函數編程,便會發現更多樂趣。
Haskell 是個好玩的函數程式語言,如果你用心學習,保證將會感受到 Haskell 的威力。該從那裡開始呢?這篇文章會列出十本學習 Haskell 的好書,含蓋初學到進階,符合各階段對象的需要。
Real World Haskell
這或許是我見過以來,最終級的學習手冊。從2008年發佈第一版,到現在整本已超過700多頁的入門教學和新手指南。 Real World Haskell 會帶領你透過函數編程,按步就班地完成各種實際練習,來指引你前進,不僅是學習如何寫 Haskell 程式,還學會如何像函數程式師思考,建置 Haskell 應用程式的方法,既可以完全當個初學者,又可以遊走於實用知識,不過你須大致瞭解一些編程概念,像是變數、函數,以及類型等。
由於這本書太豐富,你會從正規化表達式到網路編程和 web/desktop 應用開發,每一樣都學一點,這無疑是無廢話學 Haskell 的最佳入門指南。
Learn You a Haskell for Great Good!
也許在函數編程的書海中,你會發現這本是最好的 Haskell 入門書。作者巧妙運用插圖和喜劇幽默,打造出一個愉快的讀物,寫作風格非常平易近人,並以一種開玩笑的教學方式引入 Haskell 概念。
Haskell 零基礎以 Learn You a Haskell for Great Good! 為開始,帶你走訪每個重點特色,最後會學習從無開始建置自己的類型類和模組。有一些命式式/程序式編程知識可以加快協助你閱讀這本書,若沒有任何編程知識的人也適合,只是花的時間會比別人長。
搞笑天性、超棒插圖,以及逗趣幽默的流行對話文化,我可是這本書的大粉絲。全書 360頁,實際上它把學習 Haskell 變成有趣的冒險。
Haskell: The Craft of Functional Programming
函數編程不是一個容易進入主題,Haskell 剛開始可能會很複雜,除非有良好的學習資料。Haskell: The Craft of Functional Programming 目前第三版手冊已達600多頁,我認為這本是最佳的函數編程入門書,從基礎帶到進階,裡面很多應用是需要有堅韌不拔精神才能克服,也許要要花上幾個月,甚至是幾年,才能完全瞭解 Haskell,特別喜歡這本書的原因是從最基本開始教函數編程。
你可以在毫無預備知識下讀這本書,隨手翻翻就好了,但要注意,這會耗上專門的學習時間和令人非常受挫的挑戰部份。
Beginning Haskell: A Project-Based Approach
從實作專案中學習,可以讓人瞭解 Haskell 在現實世界環境如何運作,Beginning Haskell: A Project-Based Approach 將 Haskell 分成一小步一小步合理的學習過程,依然會學到所有的理論概念,像是 arrows 和 monoids ,不過是以實用性方式來學習,就算是 Haskell 零經驗的人打開此書,一樣能學到良好的函數編程知識。
你可以任意選擇三大主流作業系統的 IDE,作者採用部份熟悉的編程概念,雖然不太可能有人會拿 Haskell 作為第一個學習的語言。
雖然這本書步調確實快,但我強烈推薦給已有函數或程序編程知識,並想從專案練習中,學習 Haskell 的任何人。
Thinking Functionally with Haskell
Thinking Functionally with Haskell 是另一本介紹熱切地學生進入 Haskell 世界的函數編程書,學習如何用正確的數學模型方式來撰寫函數程式碼,有超過 100 多種不同的練習題,可以學到所有開發 Haskell 的細節,你會建置一個很棒的解數獨器和方程式運算。
實用的範例有利於加強作業流程中的好習慣,這本教科書是針對大學生,但也適用於任何想坐下來好好研究 Haskell 的人。
(未完待續)