Encontrei o RAD-IDE Racket, antigo DrScheme.
O interessante do Racket é que, além de ser um interpretador e compilador de R⁵RS e R⁶RS, também suporta – aliás, por padrão – uma linguagem de programação baseada em Scheme, também chamada Racket – antiga PLT Scheme –, muito poderosa; também traz um ambiente de desenvolvimento chamado DrRacket.
Quando você escreve um script em Scheme, a primeira linha indica a versão que você pretende usar:
#!r4rs
Ou:
#!r5rs
Ou:
#!r6rs
Se o interpretador suportar a versão, ela será usada. Já no caso do Racket, outras opções são suportadas, como o padrão:
#lang racket
Para a linguagem padrão.
[update 2011-10-18]
Um script R⁶RS começa sempre com umimport
, por exemplo:#!r6rs
(import (rnrs))
Você pode ter as funções de R⁶RS em um código Racket (PLT), basta usar:#lang racket
(require rnrs)
O módulornrs
traz toda a funcionalidade de R⁶RS.
Outra coisa legal da linguagem Racket é que, em vez delambda
, você pode usarλ
(⌘\ / C-\).
[/update]
E até mesmo:
#lang planet jaymccarthy/c
Para linguagem de programação C – uma opção de C interpretado!
Para tanto você precisa ter em seu
~/.racketrc
o seguinte conteúdo:#lang racket
(require (planet jaymccarthy/c:1:2))
Para instalar o módulo C, você pode executar no widget de definições (⌘D no Mac OS X, C-d no Windows e no GNU/Linux):
> (require (planet "main.rkt" ("jaymccarthy" "c.plt" 1 2)))
[update 2011-10-18]
Eu acho que você não precise instalar o módulo, basta colocar sua chamada em~/.racketrc
e, na primeira execução, o módulo será automaticamente baixado e instalado.
Só não posso afirmar com certeza porque eu já havia instalado ele antes.
No Windows, o arquivo éracketrc.rktl
e deve ficar no diretório de perfil do usuário.
[/update]
Programação visual
Para facilitar a vida de quem precisa desenvolver aplicações gráficas, você pode usar o MrEd Designer.
Para instalá-lo, execute no widget de definições do DrRacket:
> (require (planet orseau/mred-designer:3:7))
Para iniciar o processo, use (recomendo criar um
alias
):bash$ gracket -e '(require (planet orseau/mred-designer:3:7))'
Olá Mundo!
Vamos criar um programa simples. Primeiro abra o MrEd Designer.
[update 2011-10-19]
Troquei os nomes dos widgets pelos nomes usados no código Racket.
[/update]
Na janela Hierarchy selecione
project-XXX
.Na janela MrEd Designer, na seção Containers, clique no primeiro botão,
frame%
.Vai surgir uma janela pequena e, na hierarquia do projeto, um
frame%
(frame-XXXX
) sob o projeto.Na janela Hierarchy selecione o
frame%
que apareceu e repare que a janela Properties mudou.Em Properties, mude o valor de label (que está
Frame
) para Olá Mundo!
e clique em Save & Update Preview.Veja que o título da janela mudou.
Agora, ainda com o
frame%
selecionado, na janela MrEd Designer, na seção Controls, clique no primeiro botão, message%
. Repare que surgiu um elemento message%
(message-XXXX
) na hieraquia, sob o frame%
.Selecione o novo elemento e mude o label (em Properties) para
Olá Mundo!
.Clique em Choose Font… e escolha uma fonte maior, sugiro Arial Bold 20, e clique em Ok.
Clique novamente em Save & Update Preview.
Selecione de novo o
frame%
em Hierarchy e, em MrEd Designer → Controls, clique no segundo botão, button%
.Surgirá um elemento
button%
(button-XXXX
) sob o frame%
. Selecione-o.Mude o label para
Ok
e a fonte para Arial 14. Clique em Save & Update Preview.Agora, na janela MrEd Designer, no menu File clique em Save Project – ou pressione ⌘S / C-s. Escolha o diretório e salve como
ola
.Depois clique em File → Generate Scheme File… – ⌘F5 no Mac. Salve como
ola.ss
no mesmo diretório onde você salvou o projeto.Repare que você terá dois arquivos:
ola.*.med
(o projeto) e ola.ss
(o código).Abra agora o arquivo
ola.ss
no DrRacket:bash$ drracket ola.ss
Procure a seguinte linha:
(button-XXXX-callback (lambda (button control-event) (void))))
Onde
XXXX
é uma sequência de dígitos decimais.Mude para:
(button-XXXX-callback (lambda (button control-event) (displayln "Olá Mundo!"))))
Veja a linha 8 do script:
;;; Call (project-XXX-init) with optional arguments to this module
Acrescente a linha sugerida ao final do arquivo:
(project-XXX-init)
Salve o arquivo – ⌘S / C-s – depois rode/corra o programa – ⌘T / C-t – e veja a mágica.
Para executar o script sem precisar levantar o DrRacket, use o comando:
bash$ gracket ola.ss
Se preferir tornar o script executável, acrescente a primeira linha:
#!/usr/bin/env gracket
Outros recursos
Você pode encontrar uma série de módulos interessantes no PLaneT, como facilidades web, conexão a banco de dados,
bzlib
, Plan9, JSON, etc.Sobre construção de aplicações web, leia Continue: Web Applications in Racket.
[]’s
Cacilhας, La Batalema