First Class Functional Programming Books
Written by Kay Ewbank   
Monday, 28 June 2021
Article Index
First Class Functional Programming Books
Clojure & Scala
Lisp, Scheme, Erlang


Programming Clojure

Author: Alex Miller and Stuart Halloway
Publisher: Pragmatic Bookshelf
Pages: 304
ISBN: 978-1934356333

This book is aimed at developers who are already familiar with Java, and the first few chapters of this book ease you into Clojure and make the argument for why it is a worthwhile language. Mike James reviewed the first edition and gave it four stars, since when the book has been revised and updated with a further two editions.


Mike says the book is a fairly easy read - at first, but gets tougher as the examples get more and more advanced. In conclusion, he describes it as a fun read and a fairly easy introduction to the language. After you have read it there are lots of resources on the web to take you further but this is a very good place to start.


Practical Clojure

Authors: Luke VanderHart & Stuart Sierra
Publisher: Apress
Pages: 350
ISBN: 978-1430272311

Mike James gave this book 4.5 stars, saying that the authors do their best to explain the thinking behind the philosophy; they don't just present the syntax and an example of the semantics but do attempt to explain how you should approach a problem using Clojure.

Mike says this is quite a good book and ideal if you already have some idea about Lisp or functional languages in general. It explains the details of the language very well, but what it fails to do is to give you the broader view.

After reading, say, 75% of the book you are left with a feeling that you understand the language but don't really have much understanding of why you might want to use it or what it is really good at. Yes, you are clear that it provides a better way to do parallelism without locking, but what else can it do?

Overall, the book is great at explaining the ideas and for this the mostly tiny examples work perfectly. What it lacks is the bigger picture of using Clojure in a real project - it's a bit narrow. If you can cope with this omission, either by already knowing or finding out from another source, then this book comes highly recommended.

Web Development with Clojure  

Author: Dmitri Sotnikov 
Publisher: Pragmatic Bookshelf
ISBN: 978-1680500820

Clojure and websites aren't natural partners, and Mike James warned that while this book might be good, using Clojure to develop web sites is going to be a lonely occupation. He was still convinced enough to award this book four stars when he reviewed the first edition. It's since been updated and there's a further edition due soon.


Mike described the book as easy to read with lots of examples. Some of the example are big and you are going to have to work hard to follow. Mike also warned that this shouldn't be the first book on Clojure you should read. The primer in the appendix isn't enough as Clojure is a somewhat different language - you would probably cope if you already knew Lisp or another Lisp-like language. His overall conclusion - even if you are not interested in using Clojure to implement a website, this is a useful book of practical Clojure example code.

Clojure Recipes

Author: Julian Gamble
Publisher: Addison-Wesley
Pages: 288
ISBN: 978-0321927736

If you can program in Clojure you probably don't want the usual cookbooks that go through simple things like how to reverse a string or remove spaces, Alex Armstrong admits, but says that fortunately, this isn't really a traditional cookbook and to call what it presents you with "recipes" is a bit misleading. They are more like small case studies or tutorials on getting something specific done.

Alex gave the book four stars, and says that the book is mostly about the infrastructure that surrounds Clojure. It doesn't tell you much about Clojure itself but it does tell you about using Clojure with other Clojure- based tools, so would suit the Clojure programmer who wants to move on from programming toy examples to something real.

Learning Scala

Author: Jason Swartz
Publisher: O'Reilly Media
Pages: 256
ISBN: 978-1449367930

This book aims to help developers learn the Scala programming language, and succeeds admirably, Ian Stirk concluded, awarding it 4.7 stars. His caveat was that it succeeds provided you are already familiar with programming concepts using another language, especially an object-oriented language.

Ian describes the book as well written, concise in its explanations, with plenty of helpful examples to follow along with. However, he said that while the book concentrates on how to use the Scala language, there is little on Scala’s associated tools (e.g. Spark).


However, these are minor concerns, and overall, this is a very useful, concise, introduction to the Scala language for existing developers. Highly recommended.

Scala in Depth

Author: Joshua D. Suereth
Publisher: Manning
Pages: 304
ISBN: 978-1935182702

This book is a sort of introduction to Scala, but it really is only suitable for a programmer who already knows the language. In fact the more Scala you know, the more you will get from this book, according to Alex Armstrong, who gave the book a 4.5 star rating, explaining that what this book sets out to do is educate you in the ways of thinking of a functional programmer and a Scala functional programmer in particular.


This is a good book - perhaps even an excellent book - but only if you are the right reader. Alex's advice is at least to find a little out about coding in Scala before trying to read this book. The ideal would be if you were able to write a program in Scala, but were not entirely clear as to why you were doing things in a particular way. If you fit this profile then this book is highly recommended. 






Last Updated ( Wednesday, 19 January 2022 )