Paradigm | Multi-paradigm: functional, imperative, logic, meta, modular, object-oriented, reflective |
---|---|
Family | Lisp |
Designed by | PLT Inc. |
Developer | PLT Inc. |
First appeared | January 28, 1995 |
Stable release | 8.15[1]
/ 5 November 2024 |
Typing discipline | Dynamic, static, strong |
Platform | x86, PowerPC, SPARC, MIPS, ARM |
OS | Cross-platform |
License | MIT or Apache 2.0[2] |
Filename extensions | .rkt[3] |
Website | racket-lang |
Major implementations | |
Racket, RacketScript Racket to JavaScript (ES6) compiler, Pycket a Racket implementation using RPython. | |
Dialects | |
Typed Racket, FrTime, Lazy Racket, Scribble | |
Influenced by | |
Eiffel,[4] Scheme | |
Influenced | |
Clojure,[5] Rust,[6][7] Scheme (R6RS)[8] |
Racket is a general-purpose, multi-paradigm programming language. The Racket language is a modern dialect of Lisp and a descendant of Scheme. It is designed as a platform for programming language design and implementation.[9] In addition to the core Racket language, Racket is also used to refer to the family of programming languages[10] and set of tools supporting development on and with Racket.[11] Racket is also used for scripting, computer science education, and research.
The Racket platform provides an implementation of the Racket language (including a runtime system,[12] libraries, and compiler supporting several compilation modes: machine code, machine-independent, interpreted, and JIT) along with the DrRacket integrated development environment (IDE) written in Racket.[13] Racket is used by the ProgramByDesign outreach program, which aims to turn computer science into "an indispensable part of the liberal arts curriculum".[14][15]
The core Racket language is known for its extensive macro system which enables creating embedded and domain-specific languages, language constructs such as classes or modules, and separate dialects of Racket with different semantics.[16][17][18][19]
The platform distribution is free and open-source software distributed under the Apache 2.0 and MIT licenses.[20] Extensions and packages written by the community may be uploaded to Racket's package catalog.
The standard file extension for a Racket program file is ".rkt". The extensions ".ss", ".scm", and ".sch" are also historically popular.
mred
was invoked but never defined (see the help page).drscheme
was invoked but never defined (see the help page).