preface

I was first introduced to functional programming (FP) in the form of Common Lisp back in 2000 when I took an Artificial Intelligence class at my university. At first, Lisp appeared spare and foreign compared to the object-oriented languages I was used to. But by the end of the semester, I had built many assignments in Lisp, and it started to feel comfortable. I had gotten a taste of FP, even if I had only just begun to understand it.

Over the years, my use of functional programming deepened. I wrote my own Lisp. I read books on Lisp. I started doing my assignments from other classes in it. And from there, I was introduced to Haskell and eventually Clojure in 2008. In Clojure I found my muse. It was built on the 50-year tradition of Lisp, but on a modern and practical platform. And the community was churning through ideas about computation, the nature of data, and the practical engineering of large software systems. It was a hotbed of philosophy, computer science, and engineering. And I ate it up. I blogged about Clojure and eventually built a company to teach Clojure.

Meanwhile, awareness of Haskell was also on the rise. I worked in Haskell professionally for a few years. Haskell had a lot in common with Clojure, but there were also a lot of differences. How could we define functional programming to include both Clojure and Haskell? That question led to the seed of this book.

sitemap

Unable to load book!

The book could not be loaded.

(try again in a couple of minutes)

manning.com homepage
test yourself with a liveTest