出来事の日付:2026年8月22日

新たに公開されたプログラミング・チュートリアルが、初心者向けにRacketを紹介し、この言語を使ってLispの構造と歴史、さらに新しい構文を作成するためのアプローチを説明している。ガイドはRacketの開発環境から始まり、独自のループ構文を書くところまで進む。

このチュートリアルは、1958年にMITでジョン・マッカーシーが開発したLispから始まる系譜の中にRacketを位置付けている。Lispは、現在も使用されている高水準プログラミング言語としてはFortranに次いで2番目に古く、人工知能研究と長年にわたり深い関係を持ってきたと説明している。さらに、1975年にジェラルド・サスマンとガイ・スティールが開発したScheme、そして1995年にマティアス・フェライゼンのグループが開発したPLT Schemeへと、その言語ファミリーの歩みをたどる。PLT Schemeは2010年にRacketへ改称された。

Racketは単なる別のScheme実装ではなく、言語指向プログラミングのためのシステムとして紹介されている。プログラムは使用する言語の宣言から始まり、付属のDrRacket環境には定義領域と、実験に使える読み込み・評価・出力ループが用意されている。ターミナルの利用者は`racket`コマンドで作業し、パッケージやツールには`raco`を使用できる。

ガイドは、演算子とその引数を括弧内に記すLispの前置式形式を紹介している。無名関数、リスト、`map`、`filter`、`foldl`などの高階関数、再帰的な問題解決も扱う。グラフィックスの例ではRacketのライブラリを使ってシェルピンスキーの三角形を描き、言語の抽象的な機能を目に見える出力へ結び付けている。

最後のテーマは同図像性である。プログラムは、コードがデータとして操作するものと同じリスト構造を用いて表現される。クォートによって式が直ちに評価されるのを防ぎ、プログラムが別のプログラムを構築または変換できるようにする。その後、Racketのマクロ機能が実行前にその構造化されたコードを操作する。

この考え方を示すため、チュートリアルでは、その構文を持つ組み込みループが存在しないことを固定的な制約として扱うのではなく、`while`形式を作成する。この例は、プログラマーがコアから既に提供されている関数を組み合わせるだけでなく、問題に合わせて言語そのものを拡張できることを示す意図がある。

この記事は教育用ガイドであり、Racketの新リリースやベンチマークではない。その意義は、括弧が初心者にはなじみなく見えることもあるプログラミングの伝統を、段階的に学べる道筋を提供する点にある。ユーザー定義構文で締めくくることにより、Racketの主な魅力を、ある言語でプログラムを書く段階から、目の前の課題に適した小規模な言語を設計する段階へ移行できることとして位置付けている。

ガイドはまた、Racketが冒頭の言語宣言を通じて複数の言語をホストできることも強調している。この点はチュートリアルの進行を支えている。読者はまず簡潔な式モデルを学び、次に、その周囲の環境が代替構文やドメイン固有の規約を定義できるフレームワークであることを理解する。