Académique Documents
Professionnel Documents
Culture Documents
Les listes
1
Introduction (1)
Une liste est une structure particulière qui représente une
séquence d'objets, qui est construite de manière récursive
avec les deux éléments suivants :
1. la liste vide [ ]
2
Introduction (2)
Les éléments d’une liste sont des termes prolog : atomes,
nombres, variables ou termes composés. Ils peuvent être
ainsi des listes .
Exemple :
3
Définition
4
Notation (1)
la séquence 1, 2 et 3 est représentée ainsi :
[4, plus(3,plus(3,0)), a]
5
Notation (2)
Une liste peut contenir d'autres listes :
6
Notation (3)
Il est possible d'isoler plus d'un élément en tête de liste.
Par exemple, le terme suivant s'unie avec n'importe
quelle liste qui commence par les éléments 1 et 2 :
[1,2|X]
7
Exemple
8
Remarque
En Prolog il existe deux notation pour les listes:
Notation énumérée : [x1,x2,…,xn]
Exemple :
La liste [1,2,3,4]
est équivalente a la liste
[1|[2,3,4]]
9
Tête et queue de liste
Le premier élément de la liste et appelé tête de liste et le
reste est dit queue de liste qui est elle-même une liste.
10
Caractéristiques
1. base : []
récurrence : si L est une liste alors X.L est une liste (ajout
à gauche)
exemple :
[1,2,3]=1.(2.(3.[]))
11
Unification de listes
Voici des exemples d'unification de listes :
?- [1,2|X] = [1,2]
X = []
?- [1,2|X] = [1,2,7,3,4]
X = [7,3,4]
12
X = 2
Exercice
Est-ce que les listes suivantes sont elles unifiables
13
Opérations sur les listes
Les opérations sur les listes peuvent être programmées de
manière récursive.
length/2:
member/2:
append/3:
14
La longueur d’une liste (length/2)
longueur(0,[]).
15
Membre d’une liste(member/2)
membre(X,[X|_ ]).
membre(X,[_|Q]):- membre(X,Q).
16
Concaténation de deux listes
(append/3)
conc ([] ,L,L).
17