Book description
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
- Cover
- Title
- Copyright
- Dedication
- Contents at a Glance
- Contents
- About the Author
- About the Technical Reviewer
- Acknowledgments
- Introduction
-
Part 1: First Steps
- Chapter 1: Going Functional
- Chapter 2: Declaring the Data Model
- Chapter 3: Reusing Code Through Lists
- Chapter 4: Using Containers and Type Classes
- Chapter 5: Laziness and Infinite Structures
-
Part 2: Data Mining
- Chapter 6: Knowing Your Clients Using Monads
- Chapter 7: More Monads: Now for Recommendations
- Chapter 8: Working in Several Cores
-
Part 3: Resource Handling
- Chapter 9: Dealing with Files: IO and Conduit
- Chapter 10: Building and Parsing Text
- Chapter 11: Safe Database Access
- Chapter 12: Web Applications
-
Part 4: Domain Specific Languages
- Chapter 13: Strong Types for Describing Offers
- Chapter 14: Interpreting Offers with Attributes
- Part 5: Engineering the Store
- Index
Product information
- Title: Beginning Haskell: A Project-Based Approach
- Author(s):
- Release date: January 2014
- Publisher(s): Apress
- ISBN: 9781430262503
You might also like
book
Haskell Quick Syntax Reference: A Pocket Guide to the Language, APIs, and Library
This condensed code and syntax reference presents the essential Haskell syntax in a well-organized format that …
article
Run Llama-2 Models Locally with llama.cpp
Llama is Meta’s answer to the growing demand for LLMs. Unlike its well-known technological relative, ChatGPT, …
book
Type-Driven Development with Idris
Type-Driven Development with Idris, written by the creator of Idris, teaches you how to improve the …
book
View-based 3-D Object Retrieval
Content-based 3-D object retrieval has attracted extensive attention recently and has applications in a variety of …