__Racket__ (formerly __PLT Scheme__) is a General-purpose programming language, multi-paradigm programming language based on the Scheme (programming language) dialect of Lisp (programming language) - wikipedia
- Language Oriented Programming
- https://beautifulracket.com
- Racket can compile to LLVM using the racket-llvm bindings for Racket - github
- Wracket dialect compiles to WebAssembly - github
It is designed to be a platform for programming language design and implementation. Racket is also used for script (computing), computer science education, and research.

Racket (programming language). programming language
- wikimedia
The Racket platform provides an implementation of the Racket language (including a run-time system, libraries, and just-in-time compilation) along with the DrRacket integrated development environment (IDE) written in Racket. Racket is used by the ProgramByDesign outreach program, which aims to turn computer science into "an indispensable part of the liberal arts curriculum".
The core Racket language is known for its extensive macro (computer science) system which enables creating embedded and domain-specific languages, language constructs such as class (computer programming) or modular programming, and separate dialects of Racket with different semantics of programming languages.
The platform distribution is free and open-source software distributed under the GNU Lesser General Public License (LGPL). Extensions and packages written by the community may be uploaded to Racket's package manager.
# Features
Racket's core language includes macro (computer science)#Syntactic macros, modular programming, closure (computer science), tail calls, delimited continuations, parameters (fluid variables), design by contract, green threads and OS thread (computer science), and more - wikipedia
The language also comes with primitives, such as eventspaces and custodians, which control resource management and enables the language to act like an operating system for loading and managing other programs.
Further extensions to the language are created with the powerful macro system, which together with the module system and custom parsers can control all aspects of a language.
Unlike programming languages that lack macro systems, most language constructs in Racket are written on the base language using macros. These include a mixin class system, a component (or module) system as expressive as ML's opaque ascription, and pattern matching.
Further, the language features the first contract system for a higher-order programming language.
Racket's contract system is inspired by the Design by Contract work for Eiffel (programming language) and extends it to work for higher-order values such as first-class functions, objects, Reference (computer science) cells, and so on. For example, an object that is checked by a contract can be ensured to make contract checks when its methods are eventually invoked.
Racket includes both bytecode and Just-in-time compilation (JIT) compilers. The bytecode compiler that translates to an internal bytecode format that is run by the Racket virtual machine, with the JIT compiler transtating bytecoder to native code on x86, x86-64, ARM architecture and PowerPC platforms at runtime.
Since 2004, the language has also shipped with PLaneT, a package manager that is integrated into the module system so that third-party software component can be transparently imported and used. Also, PLaneT has a built-in software versioning policy to prevent dependency hell.
At the end of 2014, much of Racket's code was moved into a new packaging system separate from the main code base. This new packaging system is serviced by a client program named ''raco''. The new package system provides fewer features than PLaneT; a blog post by Jay McCarthy on the Racket blog explains the rationale for the change and how to duplicate the older system.
# Applications and practical use
Apart from having a basis in programming language theory, Racket was designed to be used as a general-purpose language in production systems. Thus, the Racket distribution features an extensive library that covers systems and network programming, web development, a uniform interface to the underlying operating system, a dynamic foreign function interface, several flavours of regular expressions, lexer/parser generators, logic programming, and a complete GUI framework - wikipedia
Racket has several features useful for a commercial language, among them an ability to generate standalone executables under Windows, macOS, and Unix, a Profiling (computer programming) and debugger included in the integrated development environment (IDE), and a unit testing framework.
Racket has been used for commercial projects and web applications. A notable example is the Hacker News website, which runs on Arc (programming language), which is developed in Racket. Naughty Dog has used it as a scripting language in several of their video games.
Racket is used to teach students algebra through game design in the Bootstrap curriculum.
# Sections
# See also