Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parQuentin Gallais Modifié depuis plus de 11 années
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 d’une 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 d’un élément ?- [a,b,c,d,e]=[a,b,c,X,e]. X = d
8
Exemples de mise en œuvre (6)
La liste vide n’a 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 d’une sous liste ?- [0,[a,b,c]]=[Tete|Queue]. Tete = 0 Queue = [[a, b, c]]
11
Exemples de mise en œuvre (9)
Unification d’une sous liste ?- [0,[a,b,c]]=[Tete|[SousListe|Fin]]. Tete = 0 SousListe = [a, b, c] Fin = [] Yes
12
Exemples de règles (1) appartient(X,[X|_]).
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]]).
14
Exemples de règles (2) cardinal([], 0).
Cardinal d’une liste (length) cardinal([], 0). cardinal ([_|Q], N) :- cardinal(Q, P), N is P+1.
15
Cardinal d’une liste ?- cardinal ([q,d,a,f,d], N). N=5 Yes
true ?- cardinal ([q,d,[a,f,d]], N). N= 3 ?- cardinal (L, N).
16
Exemples de règles (3) somme([], 0).
Somme des éléments d’une liste somme([], 0). somme ([T|Q], S) :- somme(Q, X), S is X+T.
17
Somme des éléments d’une 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) renverser([], []).
Inverser l’ordre 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]
true ?- renverser ([a,b,c,d], [d, X, b, a]). X=c
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.