Racket’s extensive standard library gets your projects off the ground quickly.
Racket runs on Linux, macOS, and Windows. Develop on one; deploy to all three.
Racket’s crown jewel is its macro system, which lets you freely extend the language.
Racket is a mature LGPL project that’s actively developed and maintained.
DrRacket is a graphical IDE that’s integrated with Racket’s vast documentation.
Racket started life as a Scheme implementation, but then grew into new areas.
Racket is a general-purpose programming language as well as the world’s first ecosystem for language-oriented programming. Make your dream language, or use one of the dozens already available, including these —
;; Using higher-order occurrence typing
(define-type SrN (U String Number))
(: tog ((Listof SrN) -> String))
(define (tog l)
(apply string-append (filter string? l)))
(tog (list 5 "hello " 1/2 "world" (sqrt -1)))
Typed Racket’s “gradual” typing lets you add types after you’ve been working in untyped mode.
ancestor(A, B) :- parent(A, B).
ancestor(A, B) :-
parent(A, C), ancestor(C, B).
You can use Racket to build other languages — like
datalog, a logic-programming language.
(define f (new frame% [label "Guess"]))
(define n (random 5)) (send f show #t)
(define ((check i) btn evt)
(message-box "." (if (= i n) "Yes" "No")))
(for ([i (in-range 5)])
(make-object button% (~a i) f (check i)))
Racket’s GUI language and libraries makes cross-platform applications easy.
Racket version 6.12 is available.
(eighth RacketCon) will be held in St. Louis, 29–30 Sept 2018.
Racket t-shirts — the perfect way to meet friends, influence people, and stay warm.
Racket stickers — the indispensable accessory for laptops and textbooks.
#racket IRC on freenode.net
@racketlang on Twitter
Donate to Racket
Make a tax-deductible contribution to support our work.
Realm of Racket
Learn to program with Racket, one game at a time.
Make your own programming languages with Racket.
Develop a web application with Racket.
How to Design Programs
A principled approach to programming.
A curriculum for middle-school students