La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Analyse et Programmation Déclarative / Prolog Mise en œuvre des listes.

Présentations similaires


Présentation au sujet: "Analyse et Programmation Déclarative / Prolog Mise en œuvre des listes."— Transcription de la présentation:

1 Analyse et Programmation Déclarative / Prolog Mise en œuvre des listes

2 Exemples de descriptions è Usage des méta caractères : [, ] et | [paul, jacques, pierre, michel, edouard] [1.5, -2.75, 4.0] [12, -11, [4, 75, 40]] [cœur, X, pique, trèfle] [] [Y | Z]

3 Exemples de mise en œuvre (1) è Extraction de la tête et/ou de la queue ?- [a,b,c,d,e]=[T|Q]. T = a Q = [b, c, d, e]

4 Exemples de mise en œuvre (2) è Cas dune queue vide ?- [a]=[T|Q]. T = a Q = []

5 Exemples de mise en œuvre (3) è Vérification de la tête ?- [a,b,c,d,e]=[a|Q]. Q = [b, c, d, e]

6 Exemples de mise en œuvre (4) è Vérification de la queue ?- [a,b,c,d,e]=[T|[b,c,d,e]]. T = a

7 Exemples de mise en œuvre (5) è Extraction/contrôle dun élément ?- [a,b,c,d,e]=[a,b,c,X,e]. X = d

8 Exemples de mise en œuvre (6) è La liste vide na ni tête ni queue ! ?- []=[T|Q]. false

9 Exemples de mise en œuvre (7) è Une liste ne contenant que la liste vide ?- [[]]=[Tete|Queue]. Tete = [] Queue = []

10 Exemples de mise en œuvre (8) è Cas dune sous liste ?- [0,[a,b,c]]=[Tete|Queue]. Tete = 0 Queue = [[a, b, c]]

11 Exemples de mise en œuvre (9) è Unification dune sous liste ?- [0,[a,b,c]]=[Tete|[SousListe|Fin]]. Tete = 0 SousListe = [a, b, c] Fin = [] Yes

12 Exemples de règles (1) è Appartenance à une liste (member) appartient(X,[X|_]). appartient (X,[_|Q]) :- appartient(X,Q).

13 Appartenance à une liste è Etre ou ne pas être dans une liste ?- appartient (a,[q,d,a,f,d]). true ?- appartient(a,[q,d,f,d]). false ?- appartient (a,[q,d,[a,f,d]]). false

14 Exemples de règles (2) è Cardinal dune liste (length) cardinal([], 0). cardinal ([_|Q], N) :- cardinal(Q, P), N is P+1.

15 Cardinal dune liste ?- cardinal ([q,d,a,f,d], N). N=5 Yes ?- cardinal ([], 0). true ?- cardinal ([q,d,[a,f,d]], N). N= 3 ?- cardinal (L, N).

16 Exemples de règles (3) è Somme des éléments dune liste somme([], 0). somme ([T|Q], S) :- somme(Q, X), S is X+T.

17 Somme des éléments dune liste ?- somme ([4,12,-5,1,1], S). S=13 ?- somme ([4, -4], 1). false ?- somme ([4,[5, 6]], S). ERROR

18 Exemples de règles (4) è Inverser lordre des éléments (reverse) renverser([], []). renverser ([T|Q], R) :- renverser(Q, X), append(X, [T], R).

19 Renverser une liste ?- renverser ([a, b, c], R). R=[c, b, a] ?- renverser ([4, -4], [-4, 4]). true ?- renverser ([a,b,c,d], [d, X, b, a]). X=c


Télécharger ppt "Analyse et Programmation Déclarative / Prolog Mise en œuvre des listes."

Présentations similaires


Annonces Google