I'm currently looking to learn a new programming language. I have a lot of experience with c# and I'd like to expand my horizons. While I expect to keep my "real" coding in c# which is awesome for business apps, I'd like to explore some new languages to learn new problem-solving approaches. For instance, I didn't use LINQ much before Eric Meyer's Functional Programming series here on C9, but when I watched it, it "clicked" and I heavily exploit the lambda expressions since.
But I'm having a bit of difficulty to decide on the right language to learn. I considered Python, Haskell, F# and other languages. I look for something that is a joy to develop in, it looks extremely clean and forces me to think differently (Apple reference unintentional ).
Do you have any tips and experiences learning these or other languages for the aforementioned purposes?
Thanks for suggestions,