I can't recommend http://learnyouahaskell.com/chapters enough. It was my first book coming from imperative to functional. It blew my mind. Plus, if you're looking to learn specifically functional programming, you don't get more functional than Haskell. I'd also consider Racket to see what Lisps can do (I stay away from Clojure just because it's in Java-land... but that might be a lame excuse).