BT
x Por favor preencha a pesquisa do InfoQ !

Racket 6.1 liberado

por Sergio De Simone , traduzido por Diogo Carleto em 14 Ago 2014 |

A PLT Design liberou a versão 6.1 do Racket. O objetivo do projeto é desenvolver uma linguagem de programação multiparadigma pertencente a família Lisp/Scheme. Entre diversos recursos, o Racket 6.1 introduz uma nova maneira de lidar com as definições de variáveis ​​locais recursivas.

Segundo Ryan Culpepper,no racket-lang.org, a principal inovação adicionada ao Racket v6.1, é a maneira de lidar com as definições de variáveis locais recursivas. Anteriormente a versão 6.1, variáveis eram inicializadas com um valor #undefined. Agora as variáveis não são mais inicializadas e o Racket lança uma exceção quando se tenta acessar uma variável antes de definí-la.

Ryan comenta que está mudança tem por objetivo fornecer e melhorar o feedback para os desenvolvedores sobre o uso indevido de variáveis e não deve alterar a semântica dos programas, uma vez que os programas raramente tem a intenção de produzir #undefined. Além disto, o novo comportamento é consistente com a convenção existente sobre variáveis em relação a módulos, que já geram uma exceção quando utilizados antes da definição.

O novo comportamento de definição de variável local não é compatível com versões anteriores e irá quebrar qualquer programa que acessar incorretamente variáveis indefinidas bem como programas que incluem o seguinte padrão para obter o valor #undefined:

(define undefined (letrec ([x x]) x))

Agora, a maneira correta para obter um valor #undefined é através do racket/undefined.

Outras mudanças introduzidas com a nova versão do Racket são:

  • Plumbers fornece aos programadores maior controle sobre o tempo de flushes(liberação/descarga) e ativa ações de flushing arbitrárias através de um novo conjunto de funções, tais como current-plumber, plumber-add-flush!, and plumber-flush-all.
  • Contracts podem agora facilmente encontrar simples erros em implementações de estrutura de dados contracted(contratados), por exemplo: uma inversão acidental de uma condicional em uma verificação invariante da pilha.
  • Bibliotecas gráficas e suas dependências (Pango, Cairo, GLib, etc.) foram atualizadas no Windows e Mac OS X.
  • A biblioteca openssl apresenta melhoria de segurança através de pacotes de criptografia DHE e ECDHE e a indicação de Server Name.
  • A biblioteca mzlib/class100 foi substituída pela racket/class.

O Racket (chamado antigamente de PLT Scheme) é uma linguagem multiparadigma de programação livre de uso geral, da família Lisp/Scheme liberado sob a licença LGPL. Um dos objetivos de seu design é ser uma plataforma para criações de linguagem, design e implementação. A linguagem é utilizada em uma variedade de contextos tais como scripting, programação em geral, educação em ciência e pesquisa.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.