Scala
is both a functional programming language and an object-oriented programming language. As a Java programmer, you’ll be comfortable with the object-oriented definition: Scala has classes, objects, inheritance, composition, polymorphism—all the things you’re used to in Java.
In fact, Scala goes somewhat further than Java. There are no “non”-objects. Everything is an object, so there are no primitive types like int and no static methods or fields. Functions are objects and even values are objects.
Scala can be accurately described as a functional programming language because it allows and promotes ...