srfi.7
- 機能ベースプログラム設定言語 ¶このモジュールは、SRFI-7 で定義されている
プログラム設定メタ言語(program
フォーム)を提供します。
Gauche は srfi.7
モジュールを autoload するので、(use srfi.7)
と
明示的に書く必要はありません。
program
フォームは Scheme の式である必要がないことに注意してください。
SRFI-7 では、この program
フォームを処理して Scheme プログラムを
生成してから、それを別の方法で実行するような実装を許しています。
Gauche program
フォームをマクロとして実装しているので、
フォーム自体を直接、評価することができます。とはいえ、program
フォームと他のフォームを一つのファイル中で混在させたり、program
フォームの返り値を期待するのは、よいことではありません。
program
フォームの典型的な使い方は、program
フォームのみを
含む単一のファイルを用意することです。(program
フォーム中で
files
節(後述)を用いて他のファイルをロードすることが可能です。)
このようなプログラムファイルを Gauche で実行するには、単にそれを
ロードするだけです。
[SRFI-7]{srfi.7
}
これは Scheme プログラムを構成する設定言語で、機能の利用可能性に基づいて
います。
Scheme のプログラムは、この program
フォームから構築されます。
Gauche は構築された Scheme のプログラムをそのまま実行します。
各 program-clause は以下の "Program Clause" のどれか一つである 必要があります。
[SRFI-7] feature-id は SRFI-0 のものと同じです (see 機能条件式)。 あとに続くコードが feature-id を必要とすることを教えます。
Gauche ではサポートされていない feature-id が与えられた場合には、 エラーシグナルが発生します。
[SRFI-7] プログラムに filenameの内容を挿入します。Gauche では 単に、現在のモジュール中への filename のロードをひきおこします。
[SRFI-7] scheme-expression がプログラムに挿入されます。
[SRFI-7] clause は以下のようなフォームです。
(requirement program-clause program-clause2 ...)
ここでは、requirement は以下のもののどれかひとつでなければなりません。
(and requirement …)
(or requirement …)
(not requirement)
最後の clause の requirement は else
になるでしょう。
Gauche はそれぞれの requirement をひとつずつチェックし、 満された requirement が見つかると、そのclause中の program-clause をプログラムに挿入します。