Foreword
Learning to program is fun, or at least it should be fun. If it’s not fun, you won’t enjoy doing it. During my career as a programmer, I have taught myself several different programming languages, and it hasn’t always been fun. Whether or not learning a language is fun depends to a large extent on how the language is introduced.
When you start working with a new programming language, on the surface it seems that all you are doing is learning a new language. But at a deeper level, you are doing something much more profound—you are learning a new way of thinking. It’s this new way of thinking that is exciting, not the minor details of the punctuation or how the language looks compared to your favorite programming language.
Functional programming ...