People learn new spoken languages for multiples reasons. Why not do the same with programming languages? Ruby, Scala, io, Prolog, Erlang, Clojure, Haskell. Here is the languages that you will discover inside this book.
Let’s be honest, after reading this book, you will not be an expert in any of these languages, but you will know what each uniquely has to offer. It’s about discovering new ideas and change the way we think about program organization and construction. Major programming paradigms are covered: object-oriented programming (Ruby, Scala), prototype programming (io), constraint-logic programming (Prolog), and functional programming (Scala, Erlang, Clojure, Haskell).
What I appreciated the most is that the author condenses the best of each language is as few as 30 pages each. There is no simple Hello World code but really interesting examples used to demonstrate the philosophy of the languages. Some chapters was reviewed or contains an interview with the language creator himself like Martin Odersky for Scala. Each chapter ends with an interesting discussion of the language strengths and limitations.
The book’s approach is the probably best way to start learning a language before going to more advanced resources: Learn (just enough to get started with this book content) -> Practice (the exercises included in each chapter) -> Learn (the full possibility of the language from other resources) -> Practice (until full mastery).
List comprehension, monad, matching, currying, unification, if these terms are new to you, just read this book. One of the most delightful technical book I have read.