Another language I might suggest for exposing yourself to declarative / functional programming is Erlang or Elixir. I've tried to learn Haskell myself but the number of new concepts can be really daunting. Erlang is a little easier to get going with, and exposes you to many similar declarative concepts.
http://learnyousomeerlang.com/content