Bonjour
Puisque tu utilises SWI-Prolog, je ne peux que te renvoyer à la doc : http://www.swi-prolog.org/pldoc/man?section=IO
Ceci dit le prédicat tell/1 en conjonction avec told/0est très pratique :
? tell('c:/a-travail/toto.txt'); listing(), told.
recopiera dans le fichier toto.txt situé dans le répertoire c:/a-travail la liste de tous les prédicats de topLevel
Pour la seconde question, on peut faire ceci :
1 2 3 4 5 6 7 8 9 10 11
| :-dynamic reste/2.
toto(5,pommes).
reste(10, pommes).
mange :-
retract(reste(X, Y)),
toto(A, Y),
NX is X - A,
assert(reste(NX,Y)). |
Tape ce code dans l'éditeur puis compile-le.
Ensuite tape dans la console listing(reste).
Puis tape mange.
Enfin listing(reste).
Tu obtiendras :
% c:/users/utilisateur/documents/prolog/dvp/toto compiled 0.00 sec, 0 clauses
10 ?- listing(reste).
:- dynamic reste/2.
reste(10, pommes).
true.
11 ?- mange.
true.
12 ?- listing(reste).
:- dynamic reste/2.
reste(5, pommes).
true.
Bon courage.
Partager