1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| estReconnu([H | Tail], E, UnAutomate):-
UnAutomate = automate(_, ETATS, TRANSITIONS, _, _),
member(etat(S), ETATS),
member(transition(E, H, S), TRANSITIONS),
estReconnu(Tail, S, UnAutomate).
estReconnu([H | []], E, UnAutomate):-
UnAutomate = automate(_, _, TRANSITIONS, _, FINAUX),
member(etat(F), FINAUX),
member(transition(E, H, F), TRANSITIONS).
% Cas particuliers du mot vide et du mot d'une lettre
estReconnu([X], UnAutomate):-
UnAutomate = automate(_, _, TRANSITIONS, INITIAUX, FINAUX),
member(etat(I), INITIAUX),
member(etat(F), FINAUX),
member(transition(I, X, F), TRANSITIONS).
estReconnu([], UnAutomate):-
UnAutomate = automate(_, _, _, INITIAUX, FINAUX),
member(etat(E), INITIAUX),
member(etat(E), FINAUX). |
Partager