Les listes

Notations :

nil [] []
cons(N,nil) [N|[]] [N]
cons(M,cons(N,nil)) [M|[N|[]]] [M,N]
cons(X,Xs) [X|Xs] [X|Xs]
cons(X,cons(Y,Zs)) [X|[Y|Zs]] [X,Y|Zs]


Proposer et discuter (suivant l'instanciation des arguments) les différentes définitions sous forme de clauses Prolog des relations suivantes :

element(X,Xs) ssi X est un élément de la liste Xs
non_element(X,Xs) ssi X n'est pas un élément de Xs
prefixe(Xs,Ys) ssi Xs est un préfixe de Ys
suffixe(Xs,Ys) ssi Xs est un suffixe de Ys
sousliste(Xs,Ys) ssi Xs est une sous liste (consécutive) de Ys
app(Xs,Ys,Zs) ssi Zs est la concaténation de Xs et Ys
alenvers(Xs,Ys) ssi Ys est la liste Xs renversée
dernier(Z,Xs) ssi Z est le dernier élément de Xs
suppression(X,Xs,Ys) ssi Ys résulte de la suppression de toutes les occurrences de X dans Xs
selection(X,Xs,Ys) ssi Ys résulte de la suppression d'une occurrence de X dans Xs
perm(Xs,Ys) ssi Ys est une permutation de Xs

Fred Mesnard

Valid XHTML 1.0 Transitional