Beginning Haskell: A Project-Based Approach (Paperback)

Alejandro Serrano Mena

  • 出版商: Apress
  • 出版日期: 2014-01-24
  • 售價: $1,880
  • 貴賓價: 9.5$1,786
  • 語言: 英文
  • 頁數: 428
  • 裝訂: Paperback
  • ISBN: 1430262508
  • ISBN-13: 9781430262503
  • 相關分類: Functional-programming
  • 海外代購書籍(需單獨結帳)

買這商品的人也買了...

商品描述

Beginning Haskell provides a broad-based introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. The book takes a project-based approach to learning the language that is unified around the building of a web-based storefront. Excellent coverage is given to the Haskell ecosystem and supporting tools. These include the Cabal build tool for managing projects and modules, the HUnit and QuickCheck tools for software testing, the Scotty framework for developing web applications, Persistent and Esqueleto for database access, and also parallel and distributed programming libraries. 

Functional programming is gathering momentum, allowing programmers to express themselves in a more concise way, reducing boilerplate and increasing the safety of code. Indeed, mainstream languages such as C# and Java are adopting features from functional programming, and from languages implementing that paradigm. Haskell is an elegant and noise-free pure functional language with a long history, having a huge number of library contributors and an active community. This makes Haskell the best tool for both learning and applying functional programming, and Beginning Haskell the perfect book to show off the language and what it can do.

  • Takes you through a series of projects showing the different parts of the language.
  • Provides an overview of the most important libraries and tools in the Haskell ecosystem.
  • Teaches you how to apply functional patterns in real-world scenarios.

What you’ll learn

  • Build small and large projects using the Haskell language.
  • Profit from ecosystem tools such as Cabal, HLint, and QuickCheck.
  • Implement efficient stream I/O via libraries like Conduit.
  • Parallelize code to run on multiple processors or distributed across a network.
  • Create domain-specific languages useable by business users, and to tackle specific problem domains.
  • Build Haskell-backed websites using database and web-application libraries such as Persistent, Esqueleto, and Scotty

Who this book is for

Beginning Haskell is for programmers new to functional programming, who want to learn this new paradigm and how it can improve the quality of their code. Beginning Haskell is also a great choice for functional programmers wanting to get a taste of the Haskell ecosystem and its unique features, or who wish to learn about advanced type system features and patterns.

Table of Contents

Part I: First Steps

1. Going Functional

2. Declaring the Data Model

3. Reusing Code through Lists

4. Using Containers and Type Classes

5. Laziness and Infinite Structures

Part II: Data Mining

6. Knowing Your Clients Using Monads

7. More Monads: Now for Recommendations

8. Parallelizing the Execution

Part III: Resource Handling

9. Dealing with Files: IO and Conduit

10. Builders and Parsers

11. Safe Database Access

12. Web Applications

Part IV: Domain Specific Languages

13. Strong Types

14. Attribute Grammars

Part V: Engineering the Store

15. Documenting, Testing, and Verifying

16. Architecting Your Application

商品描述(中文翻譯)

《Beginning Haskell》提供了廣泛的介紹,包括Haskell語言、其庫和環境,以及在軟體行業中日益重要的函數式編程範式。本書以項目為基礎的方式來學習語言,圍繞著構建基於網絡的商店的開發展開。書中詳細介紹了Haskell生態系統和支援工具,包括用於管理項目和模塊的Cabal構建工具,用於軟體測試的HUnit和QuickCheck工具,用於開發網絡應用程序的Scotty框架,用於數據庫訪問的Persistent和Esqueleto,以及並行和分佈式編程庫。

函數式編程正在蓬勃發展,使程序員能夠以更簡潔的方式表達自己,減少樣板代碼並提高代碼的安全性。事實上,主流語言如C#和Java正在採用函數式編程的特性,以及實現該範式的語言。Haskell是一種優雅且無噪音的純函數式語言,擁有悠久的歷史,擁有大量的庫貢獻者和活躍的社區。這使得Haskell成為學習和應用函數式編程的最佳工具,而《Beginning Haskell》則是展示該語言及其功能的完美書籍。

本書的特點包括:
- 通過一系列項目展示語言的不同部分。
- 概述了Haskell生態系統中最重要的庫和工具。
- 教你如何在實際場景中應用函數式模式。

你將學到:
- 使用Haskell語言構建小型和大型項目。
- 利用Cabal、HLint和QuickCheck等生態系統工具。
- 通過Conduit等庫實現高效的流I/O。
- 將代碼並行化,運行在多個處理器上或分佈在網絡上。
- 創建可供業務用戶使用的特定領域語言,解決特定問題領域。
- 使用Persistent、Esqueleto和Scotty等數據庫和網絡應用程序庫構建基於Haskell的網站。

本書適合對函數式編程新手,他們希望了解這種新範式以及它如何提高代碼質量。對於希望瞭解Haskell生態系統及其獨特功能的函數式編程人員,或者希望了解高級類型系統功能和模式的人來說,《Beginning Haskell》也是一個很好的選擇。

目錄:
第一部分:初步
1. 函數式入門
2. 宣告數據模型
3. 通過列表重用代碼
4. 使用容器和類型類
5. 惰性和無窮結構

第二部分:數據挖掘
6. 使用單子了解客戶
7. 更多單子:現在是推薦
8. 並行執行

第三部分:資源處理
9. 處理文件:IO和Conduit
10. 構建器和解析器
11. 安全的數據庫訪問
12. 網絡應用程序

第四部分:特定領域語言
13. 強類型
14. 屬性文法

第五部分:商店工程
15. 文檔、測試和驗證
16. 架構應用程序