{{language
|site=http://racket-lang.org/
|gc=yes
|tags=lisp,racket,scheme}}
{{implementation|Scheme}}
{{implementation|Lisp}}
{{language programming paradigm|functional}}

'''Racket''' (renamed from "PLT Scheme" years ago) is a member of the Lisp family of languages, and a descendant of Scheme.
Racket draws both from its heritage in [[:Category:Lisp|Lisp]] and [[:Category:Scheme|Scheme]] in addition to other languages such as [[:Category:Eiffel|Eiffel]].

Racket provides [https://en.wikipedia.org/wiki/Higher-order_programming higher-order] [https://en.wikipedia.org/wiki/Design_by_contract software contracts] and [[:Category:Typed_Racket|Typed Racket]] extends this to provide safe [https://en.wikipedia.org/wiki/Gradual_typing gradual typing].

The main [[RacketCS]] implementation is [[:Category:Execution method/Compiled|compiled]] to [[:Category:Execution method/Compiled/Machine code|machine code]]. The [[RacketBC]] features a compiler and runtime written in C, with a precise garbage collector and a just-in-time compiler (JIT) on most platforms. [[RacketScript]] compiles to [[:Category:JavaScript|JavaScript]].

* [http://racket-lang.org/ Home page]
* [http://en.wikipedia.org/wiki/Racket_(programming_language) Wikipedia]

==Todo==
''[[Tasks not implemented in Racket|Tasks not implemented in Racket]]''