Racket

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de DrScheme)
Ir para: navegação, pesquisa
Racket
Racket logo.png
DrRacket no Ubuntu GNU/Linux
Paradigma Multiparadigma: funcional, procedural , modular, orientada à objetos, lógica, reflexiva, meta
Surgido em 1994
Última versão 5.3.5[1] (18-06-2013)
Criado por PLT Inc.
Estilo de tipagem: dinâmica, forte, estática
Dialetos: Typed Racket, Lazy Racket, Scribble, FrTime, mais
Influenciada por Scheme, Eiffel[2]
Influenciou Scheme[3]
Licença: LGPL
Página oficial racket-lang.org

Racket (anteriormente denominada PLT Scheme) é uma linguagem de programação multiparadigma 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]

Exemplos de código[editar | editar código-fonte]

Aqui está um programa trivial "Olá mundo":

#lang racket
"Olá mundo!"

A execução deste programa produz o resultado:

"Olá mundo!"

Aqui está um programa um pouco menos trivial:

O resultado deste programa, tal como mostrado em DrRacket
#lang racket
(require 2htdp/image)
(let sierpinski ([n 8])
  (if (zero? n)
    (triangle 2 'solid 'red)
    (let ([t (sierpinski (- n 1))])
      (freeze (above t (beside t t))))))

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:

#lang typed/racket
(: fact (Integer -> Integer))
(define (fact n)
  (cond [(zero? n) 1]
        [else (* n (fact (- n 1)))]))

Referências

  1. Racket blog, Racket v5.3.5
  2. Strickland, T.S.; Fellesisen, Matthias (2010). «DLS 2010: Contracts for First-Class Classes» (PDF). 
  3. 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 2011-09-13.  Parâmetro desconhecido |mês= ignorado (|data=) (Ajuda)
  4. «Welcome to Racket». Consultado em 2011-08-15. 
  5. «Dialects of Racket and Scheme». Consultado em 2011-08-15. 
  6. 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.] 
  7. Findler; Clements; Flanagan; Flatt; Krishnamurthi; Steckler; Felleisen. (2001). "DrScheme: A Programming Environment for Scheme". Journal of Functional Programming.
  8. Felleisen; Findler; Flatt; Krishnamurthi. (2004). "The TeachScheme! Project: Computing and Programming for Every Student". Journal of Computer Science Education.
  9. «Overview». Program by Design. Consultado em 2011-08-17. 
  10. «Macros Matter». 2007-05-03. Consultado em 2011-08-08. 
  11. Flatt, M.; Findler, R. B.; Felleisen, M.. (2006). "Scheme with Classes, Mixins, and Traits". Asian Symposium on Programming Languages and Systems.
  12. Flatt, M.; Felleisen, M.. (1998). "Units: Cool Modules for Hot Languages". Programming Language Design and Implementation.
  13. Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M.. (2011). "Languages as Libraries". Programming Language Design and Implementation.

Ligações externas[editar | editar código-fonte]

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.