So both Haskell and Scala are functional languages. Once you are familiar with one functional language, you can learn other functional language little easier.
Let me explain what is Functional programming by comparing to OOP. In OOP, we treat the data and the operations on that data as one entity called object. We design the system by creating multiple objects interacting with each other.
However functional paradigm suggests that the data and operations (behavior) are two separate entities. These operations should not change the state of data. They just and take the data and return them in a new form without modifying the original state. These are also called pure functions which do not modify the state of it's parameters. One advantage of this could be ease of parallel execution, because one object can be sent to multiple parallel functions without worrying about the state change by one particular function. You might want to read the following link for more details. https://www.codenewbie.org/blogs/object-oriented-programming-vs-functional-programming