Pro Highly extensible
Racket is to programming languages what Emacs is to text editors. That is to say, it is probably the most extensible one out there, or at least it's one of them. You can make domain-specific languages that don't even resemble Lisp or Scheme.
Con Very different semantics from mainstream programming languages