Appendix. Scala

Why am I devoting an appendix to one particular programming language? My experience of programming in many languages combined with my experience of FP has taught me that although it is possible to express functional concepts in any language, to one extent or another, some languages lend themselves more naturally to functional thinking and expression.

Note

While it is possible to express functional concepts in virtually any language, a language that was designed to partially or fully support functional constructs makes it easier to learn and appreciate what FP is all about.

It is for this reason that I have decided to introduce examples in a few different languages, so that you can see how one might go about expressing functional concepts with a variety of tools and capabilities. However, it is my sincere belief that to fully appreciate the beauty and utility of functional concepts, one needs to see them expressed in a language that was designed with these ends in mind.

I could have chosen Haskell, a purely functional language that is in many ways the archetypical functional language, but I thought it best to err on the side of practicality. So I chose Scala, which is a hybrid language. Its designer, Martin Odersky, wanted a language that could produce functional code and object-oriented code equally well.

Note

Scala is a hybrid language. It was designed to support both the object-oriented and functional paradigms.

There are examples in other languages in the ...

Get Learning Functional Programming now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.