Les listes


append/3 : concaténation de 2 listes (Prédéfini SWI-Prolog)

member/2 : appartenance à une liste (Prédéfini SWI-Prolog)

last/2 :  obtenir le dernier élément d'une liste         

naive_reverse/2 : retourner une liste sur elle même.

reverse/2 :  retourner une liste (Prédéfini SWI-Prolog)

flatten/2 :  "aplatir" une liste(Prédéfini SWI-Prolog)

delete/3 : supprimer toutes les occurrences d'un élément (Prédéfini SWI-Prolog)

select/3 : supprimer une occurrence d'un élément (Prédéfini SWI-Prolog)

permut/2 : donner une permutation des éléments d'une liste

source des programmes


Définition récursive des listes


Construction de droite à gauche :

(i) [] est la liste vide (ATTENTION c'est aussi une constante).

(ii) si L est une liste et X un élément alors  [X|L] est une liste.

Exemple :

?- [a , b , c] = [X | L]

X = a , L = [b,c]

yes

Les représentations suivantes sont strictement équivalentes :

[a,b,c]   =  [a | [b,c]]   =  [a | [b | [c]]]  =  [a | [b | [c | []]]]

Le symbole "|" permet de distinguer la tête et la queue d'une liste :

[X | L]   :   X la tête, L le reste...(L est une liste) cf.les paires pointées de LISP

<retour>