front matter
preface
You’re probably looking for new insights into what you already know about software design, or you might be wondering how to build real programs in functional languages such as Haskell, Scala, Elm, PureScript, F#, or OCaml. Perhaps you’ve always wanted to get a complete picture of software engineering in Haskell, or maybe the idea of having a methodology unifying all the main concepts of functional programming has attracted your attention. All of these reasons motivated me to write this book: I realized how big the knowledge gap was and that I desperately needed to fill in this gap for my day-to-day functional job.
This book uses Haskell as a model language. The choice was deliberate because it’s the most iconic functional language with a rich type system. It could have been Scala or OCaml, but unfortunately, I am not proficient enough in those languages. The ideas are universal, and Haskell allows me to present them in a concise and easy-to-follow way.
This book has a long story behind it. I started this book with Manning Publications at the beginning of 2016, but the process stalled out. At that time, I had completed a lot of supporting projects and examples. I also discovered a bunch of new concepts that I refined through several years of successful production usage.