I came to Scheme from C and Java and have looked briefly at Clojure. Clojure is a great effort and makes interfacing with Java simple but unless you are forced to use the JVM, I would recommend a regular Scheme instead. Clojure doesn't support continuations and tail call optimisation which are key features of Scheme and contribute significantly to its brilliance.<p>Gambit is a very practical implementation that is fast and offers relatively easy interfacing to C.<p>But, most serious effort in functional programming is done in Haskell or OCaml so thats where the libraries and jobs are. Of the two, I think Haskell is probably bigger and is the better language with more features.<p>My recommendation would be to learn Scheme until you understand the basics, continuations and macros and then move on to Haskell which will be a lot easier having come from Scheme.