指令(directive)は、その場で実行されるべきインタプリタやコンパイラに対する命令で、読み込みと同時に実行されます。これらはコンサルトされたファイル、あるいはコンパイルすべきファイル中に置くことができます。
指令には、以下の2つの異なる型があります。
コンパイラ指令: ?- op(250, xfy, '#').
ロード指令: :- op(250, xfy, '#').
コンパイラ指令「?-」は、コンパイラによって直接実行されます。ロード指令「:-」は、ロード時(あるいはコンサルト時)に実行されます。
コンパイルすべきファイルに対してオペレータを定義するには、コンパイラ指令を使わなければなりません。それ以後、コンパイラは新しいオペレータの定義をプログラムの構文解析に使用することができます。
コンパイラとconsultの間にある程度の移植性をもたせるため、consultは以下のコンパイラ指令を解釈します。
?- op/3 ?- include/1 ?- predicate/1