0
:-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([],_) :- !.

肯定是:

?- expertiser([bois]).
le fait bois est etabli

但是,它只是返回假,为什么?

4

0 回答 0