PLT DesignがRacket 6.3を発表した。これはLisp/Schemeファミリーに属するマルチパラダイム・プログラミング言語の最新バージョンだ。Racket 6.3には新しいマクロ展開器、改善されたRedex DSL、GTK3サポートなどが含まれている。
マクロはLispベースの言語で最も典型的な機能の一つだ。Racket 6.3は“set of scopes”と呼ぶバインディングの新しい表現モデルを導入している。これは以前の健全なマクロ(hygienic macro)式を置き換えるものだ。PLTの研究者Matthew Flatt氏によると、新しいマクロ展開器は以前のものよりも使いやすく、バインディング失敗時により良い診断を提供し、実装がシンプルなので、バグを生みにくいという。欠点は、新しいマクロシステムは以前のRacketマクロと完全互換でないことだ。
Racket 6.3ではRedexパターンの構文エラーチェックも改善されている。Redexは操作的意味論を規定・デバッグするためのドメイン固有言語で、言語を形式的にモデル化するのに使われる。
Racket 6.3のその他の新機能を以下に挙げる。
- GTK+3のGUIサポート。利用可能なとき自動的に使われる。
PLT_GTK2
をオーバーライドしない。 - Typed Racketのサブモジュールサポート。新しいマクロ展開器により可能になる。これまでサブモジュールの使用で苦しめられたエラーの原因を完全に取り除く。
- 新しい
typed/racket/unsafe
により契約生成を回避できる。これは安全性とデバッグしやすさを犠牲にしてパフォーマンスを改善する。 racket/unit
はTyped Racketにおけるユニットの実験サポートを提供する。
RacketはLGPLライセンスで提供されている。設計目標の一つは、言語の創造・設計・実装のプラットフォームとして使われることだ。この言語はスクリプティング汎用プログラミング、コンピュータサイエンス教育、研究など様々な場面で使われている。