Manipuler des listes en Prolog
Ce travail consiste à faire en Prolog des programmes qui
concatènent des listes ou qui sélectionnent un élément.
Une liste en Prolog est indiquée avec la syntaxe [a,b,c,d]. Une
chaine de caractères est notée entre guillemets: "abcd".
C'est la liste des codes de ses caractères. Ainsi, "abcd"
est repprésentée par [97,98,99,100].
Etape 1
Ecrire un ensemble de règles qui concatène des listes, c'est à dire qui les
mets bout à bout: append(X,Y,Z) est vrai si et seulement si Z est
formée des listes X et Y mises bout à bout.
On utilisera une définition récursive.
Etape 2
Appliquer ce prédicat à des listes d'atomes, puis à des chaines de
caractères.
Etape 3
Il existe en Prolog un prédicat prédéfini qui transforme une chaine de
caractères en un atome:
name(X,"abcd").
est vrai ssi X = abcd (sans les guillemets).
Etape 4
Ecrire des règles qui, étant donné un verbe du premier groupe à
l'infinitif, le conjuguent à la 3e personne du singulier à l'imparfait.
Appliquer la règle aux verbes suivants:"chanter",
"trouver", "cuisiner".
Etape 5
Ecrire un ensemble de règles qui sélectionne un élément d'une liste:
select(X,Y,Z) est vrai si et seulement si la liste Z est égale à
la liste Y de laquelle on a enlevé l'élément X.