Q:

Which functional language is good for a beginner?

Possible Duplicate:
Choosing a functional programming language 

I am a C++ programmer looking to learn a functional language as a hobby and out of sheer curiosity. I am not looking to be an expert, but just to get a grasp on functional programming. This language should be simple to learn and have good tutorials and resources for beginners. Are there any such languages?

A:

I've found that Haskell has a number of good resources available. It's also a purely functional language, meaning that any identifiers are immutable. As far as resources to learn the language, it has a comprehensive website and a highly recommended tutorial that is also available for purchase as a book. Real World Haskell is also another good book available for purchase or online for free. Haskell is also somewhat common on Stack Overflow, with over 4000 questions asked and many answered.
However, one of your requirements is "simple to learn". That's hard to judge. Coming from a C++ background, I suspect that you have a strong object-oriented and/or procedural background. Functional programming requires a totally different thought process - it will warp your mind, but it will also make you a better engineer if you are able to think in a new and very different way. You might be interested in the answers to this question about learning functional programming to become a better object-oriented programmer.

A:

'Simple to learn' is always going to be relative - the biggest burden is making the jump from imperative to functional programming, the syntax is of much less importance. In fact, a radically different syntax might make it easier to pick up the new concepts and approach programming from a completely different angle.
The language itself is probably less important than its surrounding ecosystem - you want to pick one that has an active community, a rich set of libraries, and most of all, good development tools. However, I'd go for a language that was designed for functional programming, rather than a multi-paradigm one that happens to be suitable for functional programming - javascript, for example, has many FP aspects, but it doesn't invite or urge you to use them.
Here's a list of languages you might want to try:

Haskell
Scheme
Common Lisp (CL)
ML
F# (if you're into .NET)
Clojure (if you're familiar with the Java ecosystem)

Of these, Haskell is probably the most radically different from what you're used to.

