# prolog_flag(+フラグ,-旧スイッチ,+新スイッチ)
prolog_flag/3は、IF/Prologの大域的な状態をチェックしたり変更するのに使用します。IF/Prologシステムでは、以下のフラグを使用しています。
iso, save_var_name, single_var_check syntax_warnings, notify
「旧スイッチ」と「新スイッチ」は、どちらもon/offのいずれかでなければなりません。
以下の説明は、「新スイッチ」がonの場合に有効になる機能について述べています。 「新スイッチ」がoffの場合には、その機能が無効になります。
isoフラグ(デフォルトはoff)は、IF/Prologのパ−サが、ISOの構文規則を厳密に使用するように強制します。また、定数を要求する引数に計算式を書くことができなくなります。
yes ?- arg(1+1,a(b,c),X).
X = c
yes ?- prolog_flag(iso,_,on).
yes ?- arg(1+1,a(b,c),X). E X C E P T I O N:integer_expected:arg(1 + 1,a(b,c),_298) ?-
フラグsave_var_namesは、コンサルトするときに変数名を格納するかどうかを決定します。
フラグsingle_var_check(デフォルトはon)がonの場合、変数が節の中で1度しか使用されなかった時にIF/Prologが警告を出します。警告を出したくないときは、変数名をアンダ−スコアで始めてください。
フラグsyntax_warnings(デフォルトはon)は、構文上の警告を出すかどうかを決定します。
notifyモ−ド(デフォルトはon)は、フラグnotifyを使ってoffにできます。 (指令 nonotify を参照して下さい。)
atom_expected 「フラグ」がアトムでない out_of_range 「フラグ」が正しいアトムでない on/off_expected 「新スイッチ」がonでもoffでもない