A descendant of Scheme aimed at language-oriented programming. Comes with a powerful hygienic macro system (syntax-parse), a contract system, and tools (#lang) for defining whole new languages that interoperate.
Key facts
Year: 1995 (as PLT Scheme); renamed Racket in 2010.
Paradigm: functional (mostly), but supports OO, logic, lazy via dialects.
Typing: dynamic by default; Typed Racket adds gradual static types.
Macros: hygienic; phase-separated compilation.
“Language workbench” — #lang declares which Racket dialect.