modify_mode(+関数子,+引数の数,-旧スイッチ,+新スイッチ)
modify_mode/4は、「関数子/引数の数」によって与えられた述語の変更モ−ドを読み出したり、設定したりします。
述語の変更モ−ドは、その述語の定義が変更可能かどうかを定義します。変更モ−ドが"on"の場合には、述語の定義は変更可能です。"off"の場合には、述語の定義は変更不可能です。変更するためには、再びmodify_modeをonにして下さい。
以下の述語は、モ−ドの変更によって影響を受けます。
asserta/1,/2 debug_mode/4 reconsult/1 assertz/1,/2 compiles/1 retract/1,/2 asserto/1,/2 consult/1 trace_mode/4 abolish/1,/2 list_mode/4
述語「関数子/引数」の現在のモードが読み出され、「旧スイッチ」と単一化され、変更モ−ドは、「新スイッチ」によって与えられる値に設定されます。「新スイッチ」は、アトム'on'あるいは'off'のいずれかでなければなりません。またモ−ドは、2つのスイッチに同一の自由変数を使うことによって、変更なしに読み出すことができます。
最初の例は、変更モ−ドを変えずに読み出します。2番目の例は、モ−ドを読みだすとともにモ−ドの変更もします。
?- modify_mode(reports_to,2,Mode,Mode).
Mode = on
yes ?- modify_mode(reports_to,2,Mode,off).
Mode = on
yes ?- _
atom_expected 「関数子」がアトムでない integer_expexted 「引数の数」が整数でない out_of_range 「引数の数」が負の数である on/off_expected 「新スイッチ」がonあるいはoffでない