Recs.
Updated
SpecsUpdate
Pros
Pro Subtly encourages functional programming
Racket makes it inconvenient to pursue imperative habits while encouraging functional programming by Lisps's syntax. For example, the syntax for defining a function is almost the exact same as defining a variable. In addition, Racket has a strong set of higher-order functions built in to the language.
Pro Unsurpassed metaprogramming and DSL support
Racket offers a sophisticated hygienic macro system in the Scheme tradition, with enhancements to support robust checking with ease. Combined with the #lang mechanism for extending the parser, Racket has groundbreaking support for DSLs and even full-fledged languages that cooperate as parts of larger programs.
Pro Racket was designed to teach functional programming from the start
Racket is based on Scheme (LISP Family) and is very similar to Clojure. So there are a ton of (). The reason it is easier to learn is that it is not trying to be "Pure" if there is even such a thing in terms of Functional Programming. The great thing about Racket is it has everything included. You get DrRacket for developing programs. You want to add a picture to your software you can insert pictures. If you want to add libraries just open the package manager. The Syntax is an opinion but it really does feel easier to see what is happening since everything is in brackets)
Racket is a really a Programming Language for making Programming Languages. So there are smaller syntax Racket called Student Racket which makes things easier to pick up.
Pro Many tools available
Cons
Con Bloated Toolset Distribution
While it is nothing like you are expected to install for, say, a .NET software development environment, the integrated toolset for Racket is very heavy-weight for the language type it supports.
There is a minimal version available here.