1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| :-unknown(trace,fail).
%-----------------------
%BASE DES FAITS ETABLIS
%-----------------------
bois.
petite.
metal.
pierre.
grande.
%----------------------
%BASE DES REGLES
%----------------------
bois:-petite.
metal:-grande.
pierre:-grande.
% MOTEUR DINFERENCES
%-----------------------
si(C,P,_) :- C,!,P.
si(_,_,Q) :- Q.
expertiser(L) :- si(effacer(L),ecrire_succes(L),ecrire_echec(L)).
effacer([],[]).
effacer([But|AutresButs],[[But|TraceSousButs]|TraceAutresButs]):-rule(But,SousButs), effacer(SousButs,TraceSousButs), effacer(AutresButs,TraceAutresButs).
ecrire_succes(L, Trace) :-
print_conjonction(L,succes),
afficher_trace(Trace).
afficher_trace(T) :-
write('COMMENT : '), nl,
% afficher la trace à partir de la première colonne
afficher_trace(T,0).
afficher_trace([],_) :- !. |
Partager