Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 D’INFERENCES
%-----------------------
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([],_) :- !.
Ce code est censé afficher :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
?- expertiser([bois]).
le fait bois est etabli
mais il affiche false. HELP-ME!