http://gprolog.inria.fr/manual/manual044.html
The Vic's example can then also be formulated using:
g_assign(Name, 0) to init the value to 0.
g_read(Name, Number) to get the current value of Name
g_inc(Name, Number) increments Name and unifies Number with the new value
Vic Bancroft wrote:
Simple User wrote:
How to use the Global variables on the GNU Prolog?If you intend to have a prolog database, then the most natural fit might be to assert literals. Just use a dynamic/1 directive and simply assert and retract them.
:- dynamic( atom_counter/2 ).
/** counters( +Name, -Number ) * * Given an atom, records an incrementing number, begining with zero. * */ counters( Name, Number ) :- atom_counter( Name, LastNumber ), retract( atom_counter( Name, LastNumber ) ), Number is LastNumber + 1, assertz( atom_counter( Name, Number ) ), !.
counters( Name, 0 ) :- assertz( atom_counter( Name, 0 ) ), !.
I want a sample.
For more context you are welcome to read,
http://elvis.dlogic.org/~bancroft/pub/gplfaq/faq_parse.pl
_______________________________________________ Users-prolog mailing list [email protected] http://lists.gnu.org/mailman/listinfo/users-prolog
