Jump to ratings and reviews
Rate this book

Thinking Functionally with Haskell

Rate this book
Richard Bird is famed for the clarity and rigour of his writing. His new textbook, which introduces functional programming to students, emphasises fundamental techniques for reasoning mathematically about functional programs. By studying the underlying equational laws, the book enables students to apply calculational reasoning to their programs, both to understand their properties and to make them more efficient. The book has been designed to fit a first- or second-year undergraduate course and is a thorough overhaul and replacement of his earlier textbooks. It features case studies in Sudoku and pretty-printing, and over 100 carefully selected exercises with solutions. This engaging text will be welcomed by students and teachers alike.

350 pages, Hardcover

First published October 2, 2014

42 people are currently reading
224 people want to read

About the author

Richard S. Bird

8 books16 followers
Prof. Richard Simpson Bird is a computer scientist.

There are other authors named Richard Bird:
* Richard Bird — a horticultural expert and gardening author
* Richard Bird — a contemporary author
* Richard Bird — an early 20th-century author

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
25 (39%)
4 stars
22 (34%)
3 stars
12 (18%)
2 stars
3 (4%)
1 star
2 (3%)
Displaying 1 - 4 of 4 reviews
Profile Image for Mattias Lundell.
19 reviews
July 6, 2015
Great read! A lot of exercises with solutions (not yet tried the exercises though).
28 reviews5 followers
May 12, 2021
Every introductory book on Haskell i have read offers something unique.

This book shines in equational reasoning and performance - something i cant recall were covered in other introductory books i have read. Of course, when talking about performance, we also learn about strict and lazy evaluation and goes on to introduce *seq* to force strictness.

There are other topics too which were new for me like cyclic definitions eg: *repeat x = xs where xs=x:xs*, partial lists, proofs on infinite data structures like lists.

The best idea for me to take away from the book is optimization using equational reasoning! I was quite blown away when author show an algorithm in O(n^3) complexity and using equational reasoning to optimize it to O(n). I hope i can do such magical things :)

Well, on the not so good part of the book is its content density. It is too dense for a beginner level book. It felt author merely introduced a concept just by giving its definition with as little explanation possible.

And that's all i have to say :)
13 reviews
Read
July 3, 2025
Richard Bird’s Thinking Functionally with Haskell disappoints compared to the 1988 Introduction to Functional Programming (co-authored with Wadler). The earlier book used a Miranda-like language to teach universal functional programming principles, with exercises that honed transferable skills. In contrast, this book fixates on Haskell’s syntax and minutiae, like specific type declarations, which feels tedious and narrowly focused. The exercises are uninspiring and Haskell-specific, offering little value for readers unsure about committing to Haskell. While it covers key concepts like monads, the prose is dry and lacks the clarity of its predecessor. Stick to Wadler’s work for a more engaging, versatile introduction.
5 reviews
December 27, 2016
Excellent book. Good introduction to functional programming and Haskell with emphasis on equational reasoning for program transformation and proving. This highlights the real strength of functional programming and should or could be an eye-opener for programmers unfamiliar with the functional programming style.

Every chapter ends with exercises which are definitely worth trying, first to get some hands-on experience with the material just read and second, to get a deeper understanding of the material especially when reviewing the answers.

Nice touch are the short chapter notes at the end of each chapter, they provide in many cases some more context and pointers to more information. A reference I however missed (or maybe overlooked) is to the book Purely Functional Data Structures for more advanced insight into asymptotical behavior of algorithmic datastructures.

In my opinion this book will put you in the right (truly functional) mindset to dive into Haskell. However for a working knowledge of Haskell additional followup material is needed with my favorite still Real World Haskell: Code You Can Believe In.
Displaying 1 - 4 of 4 reviews

Can't find what you're looking for?

Get help and learn more about the design.