Racket (anteriormente denominada PLT Scheme) é uma linguagem de programaçãomultiparadigma que suporta programação funcional e procedural. Pertence a família de linguagens Scheme/Lisp. Um dos objetivos do projeto é servir como uma plataforma para a criação de linguagem, design e implementação.[4][5] A linguagem é utilizada numa variedade de contextos, tais como scripting, programação de uso geral, a educação de ciência da computação e pesquisa.
A plataforma fornece uma implementação da linguagem Racket (incluindo um sofisticado sistema run-time[6] várias bibliotecas, JIT, e mais) juntamente com um ambiente de desenvolvimento chamado DrRacket (anteriormente denominado DrScheme) escrito em Racket ele mesmo.[7] A IDE e um currículo que acompanha a programação são usados no programa de extensão ProgramByDesign, uma tentativa de transformar a computação e programação em "uma parte indispensável do currículo de artes liberais".[8][9] O núcleo da linguagem é conhecido por seu sistema de macro extensivo que permite a criação de linguagens embutidas e específicas de domínio, construções de linguagem, como classes ou módulos, e dialetos distintos de Racket com diferentes semânticas.[10][11][12][13]
Este programa, a partir do Racket website, desenha um triângulo de Sierpinski, aninhado em profundidade 8.
Usando a diretiva #lang, um arquivo de origem pode ser escrito em diferentes dialetos do Racket. Aqui está um exemplo do programa de fatorial em Typed Racket, um dialeto de tipagem estática de Racket:
↑Sperber, Michael; Dybvig, R. Kent; Flatt, Matthew; Van Straaten, Anton; et al. (2007). «Revised6 Report on the Algorithmic Language Scheme (R6RS)». Scheme Steering Committee. Consultado em 13 de setembro de 2011 !CS1 manut: Uso explícito de et al. (link) !CS1 manut: Nomes múltiplos: lista de autores (link)
↑Flatt; Findler; Krishnamurthi; Felleisen (1999). Programming Languages as Operating Systems (or, Revenge of the Son of the Lisp Machine): International Conference on Functional Programming. [S.l.: s.n.] !CS1 manut: Nomes múltiplos: lista de autores (link)
↑Findler; Clements; Flanagan; Flatt; Krishnamurthi; Steckler; Felleisen (2001). «DrScheme: A Programming Environment for Scheme»(PDF). Journal of Functional Programming !CS1 manut: Nomes múltiplos: lista de autores (link)
↑«Overview». Program by Design. Consultado em 17 de agosto de 2011
↑«Macros Matter». 3 de maio de 2007. Consultado em 8 de agosto de 2011
↑Flatt, M.; Findler, R. B.; Felleisen, M. (2006). «Scheme with Classes, Mixins, and Traits»(PDF). Asian Symposium on Programming Languages and Systems !CS1 manut: Nomes múltiplos: lista de autores (link)
↑Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). «Languages as Libraries»(PDF). Programming Language Design and Implementation !CS1 manut: Nomes múltiplos: lista de autores (link)