Question: I've been programming C++ for about 5 years now, and I now realize the value of knowing how to think "differently."

This question is for C++ programmers who tried out other programming languages and came across moments like:

* "Whaoo..this is sooo cool! I didnt know I can program like that."
* "Wow, I never thought a design problem could be solved that way!"

So, which language did that to you? I'm looking for maximum effect, so I dont think Java would fit the bill. =p I'm open to any suggestions, though!

Disclaimer: I ask this question primarily because I want to expand my mind. There is no intention to start **any** programming language war here!

Answer: 
Python gave me the "so cool" reaction
I'll second Lisp/Scheme, and also suggest [Haskell](http://www.haskell.org/haskellwiki/Introduction) as a language that will challenge the way you think about programming. The O'Reilly book "Real World Haskell" is a pragmatic introduction, well illustrated with concrete use cases.