Functional vs Pure functional
Scala is a great way to get started with functional programming. It also has support to do pure functional programming. There’s many libraries in Scala for doing this, like cats, ScalaZ. But is Scala a “pure functional” language? It’s entirely up to the developer since you’re allowed to write imperative code as part of your program. Purely functional programs can however be written in languages which are not purely functional which complicates things even more. What is certain is that Scala offers a great set of tools to be able to do more “pure functional” programming.
Even though it’s not enforced, the language does encourage functional programming principles and is a great way to get introduced to many core functional programming concepts.