:- dynamic plop/2
add(Var):-
retract(plop(Var,X))->
(X = X+1, assert(plop(Var,X)));
(assert(plop(Var,1))).
したがって、add(y) を呼び出すとします。それはplop(y、1)を作成しますが、add(y)を呼び出すと。繰り返しますが、なぜ1を追加しないので、plop(y,2)になります
:- dynamic plop/2
add(Var):-
retract(plop(Var,X))->
(X = X+1, assert(plop(Var,X)));
(assert(plop(Var,1))).
したがって、add(y) を呼び出すとします。それはplop(y、1)を作成しますが、add(y)を呼び出すと。繰り返しますが、なぜ1を追加しないので、plop(y,2)になります