modify_mode
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.

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でない


Up read on...