Racket is a general-purpose, multi-paradigm programming language and a multi-platform distribution that includes the Racket language, compiler, large standard library, and several teaching languages.

“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. In addition to the core Racket language, Racket is also used to refer to the family of programming languages and set of tools supporting development on and with Racket. Racket is also used for scripting, computer science education, and research. The Racket platform provides an implementation of the Racket language 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”, which is also being teached by the Grinnell College.

“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.The platform distribution is free and open-source software distributed under the different licenses. Extensions and packages written by the community may be uploaded to Racket’s package catalog.”

Syntax:

“The syntax of a Racket program is defined by:

  • a read pass that processes a character stream into a syntax object
  • an expand pass that processes a syntax object to produce one that is fully parsed.”

Important Features:

Paradigm: Multi-paradigm; functional, imperative, logic, meta, modular, object-oriented, reflective

Family: LISP

First Appeared: 1995

Typing Discipline: Dynamic, static, strong

License: MIT or Apache 2.0

Filename Extensions: .rkt

Terms:

LISP: ” Is a family of programming languages with a long history and a distinctive, fully parenthesized prefix notation.” 

Integrated Development Environment (IDE): “Is a software application that provides comprehensive facilities to computer programmers for software development.”

ProgramByDesign: ” Is an outreach effort of the PLT research group. The goal is to train college faculty, high school teachers, and possibly even middle school teachers, in programming and computing.”

Domain-specific Languages: ” Is a computer language specialized to a particular application domain.”