% FILE: gv.pro % TYPE: Prolog source % LINE: very simple global variable ADT % DATE: November, 1995 declare(Var,Val) :- assert(binding(Var,Val)). assign(Unbound,Bound) :- binding(Bound,Unbound). valueOf(Variable,Value) :- binding(Variable,Value). undeclare(Var) :- retract(binding(Var,_)). inc(Variable) :- retract( binding(Variable, Value)), NewValue is Value + 1, assert(binding(Variable, NewValue)). dec(Variable) :- retract(binding(Variable, Value)), NewValue is Value - 1, assert(binding(Variable, NewValue)). add(Variable,Number) :- retract( binding(Variable, Value)), NewValue is Value + Number, assert(binding(Variable, NewValue)).