Functional Thinking

Functional Thinking, Neal Ford, O’Reilly, 2014

As a programmer, you probably started with Procedural (C, Pascal, Fortran), worked up to OO (C++, Java, ..), perhaps with a side trip to declarative (XSLT). Now, Functional is more prominent (which we could have been doing all along with Lisp). Many people drift into Functional via JavaScript and jQuery but let’s think a bit more before coding.

This book helps you think in the Functional way. Its examples are in the Java ecosystem (including Groovy, Scala and Clojure). It is well written, and you will want to spend lots of time in its 150 pages.

Many of the ideas first appeared in Neal’s articles. You will also like his blog.

Functional Programming for Java

Functional Programming for Java Developers Tools for Better Concurrency, Abstraction, and Agility, Dean Wampler, – 2011

Java programmers will want to read this book. The author also wrote the Scala book. Well writen, just 70 pages!

  • FP is more concise and modular than OOP
  • Java type design—such as avoiding nulls
  • data structures and algorithms using FP principles
  • the Actor model and software transactional memory
  • functional libraries and frameworks

Professional F#

book cover

Professional F# 2.0, Ted Neward, 2011

F# is a high level language that makes good use of multicore processors, not requiring the programmer to put effort into synchronization. I would like to see benchmarks, because there must be considerable overhead. F# is a functional language, and its ancestor is OCaml. This book assumes a good knowledge of .net and has many code examples. Note: you can also use F# on Mono with Linux. 400 pages.