Racket is a programming language that can be used to build programming languages. Racket is based on Scheme and LISP but it's got some really neat innovations. If you're learning there's some great education support in How to Design Programs and Realm of Racket.
Elevate your Racket skills through 85 curated exercises across 0 core concepts. Master problem-solving with a structured learning path designed for modern developers.
"Racket (formerly named PLT Scheme) is a general purpose, multi-paradigm programming language in the Lisp/Scheme family. One of its design goals is to serve as a platform for language creation, design, and implementation. The language is used in a variety of contexts such as scripting, general-purpose programming, computer science education, and research." - Wikipedia
You can learn the basics of Racket through a few different books. Start by checking out How to Design Programs, make your own games with the slightly less formal but enjoyable Realm of Racket, or explore Racket's diverse libraries with Racket Programming the Fun Way.
Check out the official language website and the Github repository. You can find the community on Twitter, mailing lists, Discord and Slack.
Language-oriented
Racket comes with the tools to write your own programming language.
A modern Lisp
Racket is a modern dialect of Lisp, an influential language with a rich history.
Multi-paradigm
Racket is primarily functional, but it supports imperative and object-oriented programming too.
Simple syntax
Racket's syntax is simple, expressive and easy to learn.
Innovative
Racket is an actively-developed research testbed for intriguing new language features.
Macros
It's easy to customize the language to your liking with Racket's macro system.
Language-oriented
Racket comes with the tools to write your own programming language.
A modern Lisp
Racket is a modern dialect of Lisp, an influential language with a rich history.
Multi-paradigm
Racket is primarily functional, but it supports imperative and object-oriented programming too.
Simple syntax
Racket's syntax is simple, expressive and easy to learn.
Innovative
Racket is an actively-developed research testbed for intriguing new language features.
Macros
It's easy to customize the language to your liking with Racket's macro system.