If you’re looking to get a taste of functional programming, check out this list of 15 free Haskell books and tutorials to get you started.
William R. Cook
Anatomy of Programming Languages is not for beginners. It is intended for people with prior programming experience. Preferably prior programming experience in Haskell. The book spends time teaching the built-in data types including lists, the basic syntax for conditionals, function definitions, function calls, list comprehensions, and how to print out strings as well as data definitions (algebraic data types) and pattern matching. Finally, there’s a quick introduction to type classes so you’ll understand how Eq and Show work.
2. Beautiful Code, Compelling Evidence: Functional Programming for Information Visualization and Visual Analytics (PDF)
Beautiful Code, Compelling Evidence was originally presented at the International Conference for Functional Programming back in 2008. The book discusses why functional programming, and more specifically Haskell, is good for graphics and also runs through some of the basic tools that exist.
3. Exploring Generic Haskell (PDF)
Exploring Generic Haskell gives a complete overview of the language, systematically explains the core features of Generic Haskell, and several extensions, and provides detailed examples on how the features can be implemented
Developing Web Applications with Haskell and Yesod will have you building a production-quality web app with the Yesod framework. You’ll also examine several real-world examples, including a blog, a wiki, a JSON web service, and a Sphinx search server.
5. Haskell Tutorial (PDF)
Conrad Barski, M.D.
This tutorial is based on an art project called Picnic Mob that had to do with organizing flash mob mass picnics. It will walk you through how to organize a mass picnic in an arbitrarily shaped public park map in less than 100 lines of Haskell. The finished program will take a picture of a city park, take user submitted answers to random questions and, based on those answers, determine where people should sit at the flash mob picnic.
Haskell Web Programming: A Yesod Tutorial will show you how to install, initialize and configure your first Yesod project. The tutorial does not dive too deep into the details. Instead, it is designed to give you a quick taste of Yesod.
CIS194: Introduction to Haskell uses the Haskell programming language as a vehicle to explore the joys of functional programming. Throughout the course you’ll write practical programs in Haskell and explore the language’s advanced features toward the end of the course.
A very short and dense tutorial for learning Haskell.
If you have experience programming in imperative languages like Python or Java, but have yet to experience the joys of functional programming in a language like Haskell or ML, then Learn You A Haskell For Great Good is for you.
The main goal of Parallel and Concurrent Programming in Haskell is to get you programming competently with Parallel and Concurrent Haskell. It assumes you already have a working knowledge of Haskell. If you don’t, then some of the other books and tutorials on this list would be worth reading first.
Bryan O’Sullivan, Don Stewart, and John Goerzen
Real World Haskell uses dozens of code samples and examples to teach you functional programming. Throughout the book you’ll build programs that downloads podcasts and stores their history in a SQL database, takes pictures of barcodes and queries them against a bookseller’s website, experiment with the QuickCheck library to generate test cases automatically and plenty more.
12. Speeding Through Haskell (PDF)
Speeding Through Haskell is incomplete, but still contains a lot of valuable information. In order to get the most out of this book, you should have some experience in other programming languages. It was originally intended to be 15 to 20 chapters long, but the author only completed 7. Those 7 chapters cover the basics, types and polymorphism, syntax, recursion, advanced functions and fold and scans.
Kees Doets and Jan van Eijck
The purpose of The Haskell Road to Logic, Math and Programming is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming using the Haskell programming language.
Not only does The Haskell School of Music teach functional programming from scratch, but it also teaches Euterpea, a computer music library developed in Haskell, which allows programming computer music applications both at the note level and the signal level. However, the book is still a work in progress.
15. Yet Another Haskell Tutorial (PDF)
Hal Daume´ III
The goal of the Yet Another Haskell Tutorial is to provide a complete introduction to the Haskell programming language. It assumes no knowledge of the Haskell language or familiarity with functional programming in general. However, general familiarity with programming concepts (such as algorithms) will be helpful.