モジュールヘッドは、モジュール内のアトムが、モジュール外からどのようにアクセス可能であるかを定義します。 指令exportは外で使えるようにする述語(名前と引数の数で指定される)の集合を定義します。
述語をエキスポートするためのもう一つの方法は、述語を大域的名前空間commonのメンバーにすることです。これにより修飾しなくても外部からこの述語を参照することができます。この方法は、exportを対応するcommon指令と置き換えたもので、次の例のようにします。
?- common([bar/1]).
モジュール中に定義されているがいずれのメカニズムによってもエキスポートされない述語は、外から参照することはできません。つまり、これらの述語は、モジュールに対して厳密にローカルなものとなります。上の例では、述語名bar2/2の場合です。このようにして、その名前は、モジュールfooにおけるローカルな定義に干渉することなく、他のモジュールで自由に使用することができます。
モジュールヘッド内で許された最後の指令は、標準のop/3によるオペレータの定義です。つまり、述語は対応するオペレータの優先順位と結合性の定義とともに、エキスポートされます。
| scroll to top |
|