100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Racket

IntermediateLanguage10.6K learners

Racket is a general-purpose, multi-paradigm programming language descended from Scheme, originally released as PLT Scheme, designed with particular emphasis on building and experimenting with new programming languages.

Definition

Racket is a general-purpose, multi-paradigm programming language descended from Scheme, originally released as PLT Scheme, designed with particular emphasis on building and experimenting with new programming languages.

Overview

Racket grew out of the Scheme lineage of Lisp, initially as an educational implementation called PLT Scheme before being renamed and expanded into its own language and ecosystem. It retains Scheme's minimalist, parenthesized syntax and strong support for functional programming, but adds a much richer standard library, a module system, and — most distinctively — first-class support for creating entirely new programming languages within Racket itself via its `#lang` mechanism, making it a popular platform for language design research. Racket is widely used in computer science education, notably as the language behind the "How to Design Programs" curriculum, which teaches programming fundamentals through a systematic, function-first design methodology aimed at beginners as well as more advanced students. Its DrRacket IDE was built specifically to support this teaching approach with beginner-friendly error messages and a graduated set of language levels. Beyond education, Racket is used for building domain-specific languages, scripting, and general application development, appealing to developers who value its combination of Lisp-style extensibility, strong functional programming support, and practical tooling. While it remains a smaller community compared to mainstream languages, its unique strength in language-oriented programming keeps it actively used in both academic and hobbyist contexts. It is often mentioned alongside Common Lisp in this space.

Key Features

  • Descended from Scheme with a minimalist, parenthesized syntax
  • First-class support for building new languages via #lang
  • Rich standard library beyond minimalist Scheme
  • DrRacket IDE designed for teaching programming
  • Strong functional programming support
  • Popular for domain-specific language design and research

Use Cases

Teaching programming fundamentals (e.g. How to Design Programs)
Designing and prototyping domain-specific languages
Programming language design research
Functional programming exploration and scripting
Building small tools and educational software

Frequently Asked Questions