Functional Programming allows us to design program with a mathematical approach.
Immutability and function composition are the two pillars of this approach, and are really adapted to scalabilty.
We went through the main functional aspects of Scala, but there still is so much to discover.
To Go Further
If you want to dive deeper into Scala, you should know that Scala's real strengths are frameworks. Have a look at Akka, Play or Spark.
You can find the corrections of this hands-on on my github: answer branch