R6RSのライブラリにある「レベル」指定。 レベルの定義をR6RSで読んでもいまいちピンと来ない。本当に必要なの?と思ってしまう。こんな悶々とした日々を過ごしていたのですが今日やっと理解できたと思うのでまとめておきます。 R6RSは純粋に仕様書なので仕様の背景が語られることが少ないです。それが理解を妨げている一因だと思うのでここではR5RSとの比較しつつ考えます。 まずはライブラリのレベルに関連するR5RSからの大きな変化は何でしょうか? 僕が考えるのは ライブラリの仕組みの導入 マクロの syntax-case の導入 の2つです。 ライブラリの仕組みの導入 R5RSでは基本的にファイルの先頭から式を順に評価するという仕組みで動いていました。 唯一の例外は (load ...) 手続きによるファイルのロードですが、これもまたロード対象のファイルを先頭から順に評価するもので大きな違いはあり