About This Book

The inspiration for writing this book has been completely drawn from the work of Sam Halliday and his interview available at Leanpub. Sam has contributed selflessly throughout his career for education and for the Scala community. His many contributions, in particular his contribution towards the book named FP For Mortals has rocked the Scala community and also encouraged myself to write this book.

A lot of efforts have been made to ensure the content of this book is arranged in a way that it will be helpful to a reader trying to get familiar with Scala functional programming concepts and type system. Do share it as much as possible if you find answers to the problems that might have bugged you for a while, maybe some articles that you might have read on the web but didn't really understood the "why" and "how" of the mechanics involved. If you really find the content worthwhile please donate to Khalsa Aid the NGO. They are doing remarkable things for the mankind.

Recognize the whole human race as one By Guru Gobind Singh Ji

Why another book?

This book is designed to pave the way for understanding Scala type system. There are a number of features available in Scala type system but there really isn't a single place explaining all of them with appropriate examples to be able to get hold of the system. We faced quite a bit of hurdles on our way of understanding the type system and hence decided this book, with all the features detailed with examples, will hopefully help the readers in overcoming those hurdlers quickly.

The reason for focusing on the Scala type system is because Functional Programming and most popular Scala libraries like Scalaz, Scala-Cats, Shapeless, Macros are based on the a variety of Scala type system features. So, if you really want to explore the code-base of these libraries, you require a good understanding of type system features.

The purpose of this book is not going to be in-depth dive of all type system features. We are only trying to cover all of the features with simple examples and from that, the reader will get an idea for these features to then explore in-depth according to their requirements. We will plan to cover the Scala dotty type system features and add examples for the same with comparison to earlier Scala options before dotty. In this book, we are using some images from the internet but our intention is not to make a profit from this book.

This book is for beginners and experienced Scala developers who really want to explore the Scala type system and generics. For beginners, I am assuming they have an idea about Scala syntax. We hope, you enjoy this book.

Last updated