Racket is a programming language.
Download Racket
Start Quickly

#lang racket
;; Finds Racket sources in all subdirs
(for ([path (in-directory)])
  (when (regexp-match? #rx"[.]rkt$" path)
    (printf "source file: ~a\n" path)))

Draw more pictures or build a web server from scratch. Racket includes both batteries and a programming environment, so get started!

Grow your Program

Racket's interactive mode encourages experimentation, and quick scripts easily compose into larger systems. Small scripts and large systems both benefit from native-code JIT compilation. When a system gets too big to keep in your head, you can add static types.

Grow your Language

Extend Racket whenever you need to. Mold it to better suit your tasks without sacrificing interoperability with existing libraries and without having to modify the tool chain. When less is more, you can remove parts of a language or start over and build a new one.

Grow your Skills

Whether you're just starting out, want to know more about programming language applications or models, looking to expand your horizons, or ready to dive into research, Racket can help you become a better programmer and system builder.

Why Racket?

Racket is an open-source and free software programming language and platform for language design and implementation. Based on over 15 years of research and practical experience, Racket ships with many libraries, an IDE, and a package distribution system.

In Racket, you can: For the experienced functional programmer, dive right into the guide or reference. If you're a beginning programmer, we have resources for you:

See Getting Started for more.

Snippets from the Racket Blog