モジュールの定義
MINERVA superseeded IF/Prolog. Please see http://www.ifcomputer.co.jp/MINERVA for details.

We discontinued to sell IF/Prolog Dec 31. 2003. For current customers, we continue to provide professional support for IF/Prolog until Dec 31, 2008.

上で述べたモジュールは、特別なコンパイラ指令を使用してPrologのソースファイルの中で定義されます。つまり、

?- directive(.....).

という形をした節が、後でコンパイルされたファイルをロードするときではなく、コンパイル時に解釈されます。

典型的なモジュールの定義は以下のようになります。

?- module(foo).

?- export( bar/1 ).

?- module_body(foo).

bar(X) :- bar2(X,X).

bar2(bar,2).

モジュールの指令は、この直後から定義が始まるモジュールの名前を示します。モジュールの名前は、大域的名前空間commonのアトムでなければなりません。したがって、モジュールの名前は修飾しないようにします。指令moduleおよびmodule_bodyは、モジュールのヘッドの区切りとして働きます。モジュールのヘッドは、モジュールが外界とどのようなインタフェースを持っているかを指定します。モジュールのボディは、モジュールを実際に実装するための定義をする部分です。つまりモジュールが有する述語を定義します。


モジュールヘッド
モジュールボディ

Darueber read on...