Being able to understand and write good code in Scala requires developers to be familiar with the different concepts of the language. In a few places so far, we have mentioned that Scala is really expressive. To some extent, this is because there are a number of programming concepts that have been unified. In this chapter, we will focus on the following concepts:
- Functions and classes
- Algebraic data types and class hierarchies
- Modules and objects