http://research.microsoft.com/en-us/um/people/simonpj/papers...
It'll reinforce some concepts from math, and lead you toward writing code in a manner that's considered good practice in other languages - such that it's generally maintainable and testable. Similarly, if you're familiar with Design Patterns, you'll see that a lot of patterns are attempts to implement functional concepts in OO languages. That said, as a fan of Haskell I'm definitely biased, and a lot of that can be said for other functional languages as well.
"Real World Haskell" is also very good, but probably not the best place to start if you haven't written in a functional language before.
definitely a lot less hand-holding than learnyouahaskell, but they complement each other pretty well.
- After learning functional programming I realized how much of my programs do just mapping or folding over data. You start to spot the cases where this is not immediately obvious after some FP practice.
- After learning logics programming, I realized how much of my programs do a poor man's version of backtracking.
Maybe one of those languages is so much fun that you'll eventually change your 'lifestyle'. E.g. I use Haskell in many cases where I'd previously use Python or C.
[1] Of course, it doesn't always come natural. C++ STL does provide maps and folds, but since pre-C++0x doesn't have lambdas, using them requires more effort.