I have been programming in C/C++/Python for some years now.
Now, I am going start learning a functional programming language, but don't know which one to start with.
Some comments on which is the best to start with and why, would be great.
Haskell is a good place to start. I personally got into functional programming from forcing myself to learn what lambda x in python does, and I learned Haskell soon after. I think it's an easy-to-learn FP language
I started with Haskell because it forces you to write programs in a functional way. If you're interested, Learn You a Haskell for Great Good (http://learnyouahaskell.com/) is an excellent introduction.
Erlang. It is a reasonable stepping stone towards Haskell and will introduce you to some new concepts and syntax. It is also a simple language. Then tackle Haskell, which will build upon what you learned in Erlang.
A Lisp dialect is surely the right choice if you are new to functional programming. The language itself is very simple, so it won't get in your way as much as some alternatives.
I recommend starting with racket and the free textbook "how to design programs" especially if you are not comfortable with recursion. It is pretty introductory, so you may be able to plow through the exercises quickly.
MIT's classic SICP is another great starting point, especially if you have an adequate academic background.
I've played around with at least half a dozen lisp dialects. Currently only Clojure and Common Lisp are good practical general purpose lisps(maybe Racket too, but I've only played with r5rs Scheme, so I don't know for sure). Both are excellent languages, both with their own strengths and weaknesses. After using Common Lisp for a while now, its my favorite language, and Clojure comes in as a very close second. IMHO these are the two BEST dynamically typed languages that are currently used in practice.
Choosing between the two could be hard, but my general advice is that if one prefers a more strict FP approach, Clojure is better, and if one prefers to have more choice over what paradigm to use when, a good multi-paradigm language like Common Lisp can make you happy. I happen to like the latter. Which reminds me, I have a lot of lisp hacking to do, enough HN for the evening.