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.
asserta(+節)
asserta(+ヘッド,+ボディ)
asserto(+節,+引数の位置_式)
asserto(+ヘッド,+ボディ,+引数の位置_式)
assertz(+節)
assertz(+ヘッド,+ボディ)
どの形式のassert類も、述語のデ−タベ−スに追加を行います。節は、存在しているその述語の節に従って、特定の順序で追加されます。述語が存在しない場合にはassert類によって生成されます。追加された節は、バックトラックが起きても取り消されません。
追加される節は、節あるいはヘッドとボディの組み合せとして指定できます。つまりその引数は、どんな項でもよいのです。値を持たない変数は、デ−タベ−ス中で、例えば _2124, _2336 といった内部変数に置き換えられます。
assertaは、「節」あるいは「ヘッド:- ボディ」という節を述語定義の先頭に追加します。
assertoは、「節」あるいは「ヘッド:- ボディ」という節を、引数の位置_式番目の引数の値に従ってデ−タベ−ス上に追加します。その結果デ−タベ−ス上には、引数の位置_式番目の引数の値が小さい順に述語が並びます。
assertzは、「節」あるいは「ヘッド:- ボディ」という節を述語の定義の最後に追加します。
?- assertz(t(a,6) :- fail), asserta(t(b,3) :- true),
asserto(t(c,4),(write('t/c/4'),fail),2).
yes
?- listing(t).
t(b,3).
t(c,4) :- write('t/c/4'),
fail.
t(a,6) :- fail.
yes
?- _
illegal_predicate 引数が複合項でない
out_of_range 「引数の位置_式」が大きすぎるか、あるいは小さすぎる
integer_expected 「引数の位置_式」が整数でない
not_modifiable 述語が変更できない
|