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.