Learning functional programming in scala

Your background and learning objectives, in my opinion, make you a perfect match for this: https://www.coursera.org/learn/programming-languages

This is a free online course teaching functional programming using the Standard ML programming language. You’re thinking, why should I learn Standard ML (SML)? The point is not to try to push you away from Scala, but to use SML as a teaching language to learn statically-typed functional programming concepts, including: an intuition for how type inference works, first-class functions, generics and parametric polymorphism, modules and data abstraction. These concepts are incredibly relevant to Scala as well.

The reason I recommend this particular course is because of the quality of the lectures. Each one is about ten minutes long and is explained clearly, concisely, and gives you a very useful mental model of the topics covered. The lecturer is Professor Dan Grossman at the University of Washington. Highly recommended (even if you skip the assignments–the lectures are that good).