## Get Programming with Haskell

### Huge savings for students

Each student receives a 50% discount off of most books in the HSG Book Store. During class, please ask the instructor about purchase details.List Price: | $44.99 |

Price: | $22.50 |

You Save: | $22.50 |

**Summary**

*Get Programming with Haskell* introduces you to the Haskell language without drowning you in academic jargon and heavy functional programming theory. By working through 43 easy-to-follow lessons, you'll learn Haskell the best possible way--by doing Haskell

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

**About the Technology**

Programming languages often differ only around the edges--a few keywords, libraries, or platform choices. Haskell gives you an entirely new point of view. To the software pioneer Alan Kay, a change in perspective can be worth 80 IQ points and Haskellers agree on the dramatic bene ts of thinking the Haskell way--thinking functionally, with type safety, mathematical certainty, and more. In this hands-on book, that's exactly what you'll learn to do.

**About the Book**

*Get Programming with Haskell* leads you through short lessons, examples, and exercises designed to make Haskell your own. It has crystal-clear illustrations and guided practice. You will write and test dozens of interesting programs and dive into custom Haskell modules. You will gain a new perspective on programming plus the practical ability to use Haskell in the everyday world. (The 80 IQ points: not guaranteed.)

**What's Inside**

- Thinking in Haskell
- Functional programming basics
- Programming in types
- Real-world applications for Haskell

**About the Reader**

Written for readers who know one or more programming languages.

**About The Author**

**Will Kurt** currently works as a data scientist. He writes a blog at www.countbayesie.com, explaining data science to normal people.

**Table of Contents**

- Lesson 1 Getting started with Haskell Unit 1 - FOUNDATIONS OF FUNCTIONAL PROGRAMMING
- Lesson 2 Functions and functional programming
- Lesson 3 Lambda functions and lexical scope
- Lesson 4 First-class functions
- Lesson 5 Closures and partial application
- Lesson 6 Lists
- Lesson 7 Rules for recursion and pattern matching
- Lesson 8 Writing recursive functions
- Lesson 9 Higher-order functions
- Lesson 10 Capstone: Functional object-oriented programming with robots Unit 2 - INTRODUCING TYPES
- Lesson 11 Type basics
- Lesson 12 Creating your own types
- Lesson 13 Type classes
- Lesson 14 Using type classes
- Lesson 15 Capstone: Secret messages Unit 3 - PROGRAMMING IN TYPES
- Lesson 16 Creating types with "and" and "or"
- Lesson 17 Design by composition--Semigroups and Monoids
- Lesson 18 Parameterized types
- Lesson 19 The Maybe type: dealing with missing values
- Lesson 20 Capstone: Time series Unit 4 - IO IN HASKELL
- Lesson 21 Hello World --introducing IO types
- Lesson 22 Interacting with the command line and lazy I/O
- Lesson 23 Working with text and Unicode
- Lesson 24 Working with files
- Lesson 25 Working with binary data
- Lesson 26 Capstone: Processing binary files and book data Unit 5 - WORKING WITH TYPE IN A CONTEXT
- Lesson 27 The Functor type class
- Lesson 28 A peek at the Applicative type class: using functions in a context
- Lesson 29 Lists as context: a deeper look at the Applicative type class
- Lesson 30 Introducing the Monad type class
- Lesson 31 Making Monads easier with donotation
- Lesson 32 The list monad and list comprehensions
- Lesson 33 Capstone: SQL-like queries in Haskell Unit 6 - ORGANIZING CODE AND BUILDING PROJECTS
- Lesson 34 Organizing Haskell code with modules
- Lesson 35 Building projects with stack
- Lesson 36 Property testing with QuickCheck
- Lesson 37 Capstone: Building a prime-number library Unit 7 - PRACTICAL HASKELL
- Lesson 38 Errors in Haskell and the Either type
- Lesson 39 Making HTTP requests in Haskell
- Lesson 40 Working with JSON data by using Aeson
- Lesson 41 Using databases in Haskell
- Lesson 42 Efficient, stateful arrays in Haskell
- Afterword - What's next?
- Appendix - Sample answers to exercises