Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| cnam:utc503:declarative:prolog [2023/12/07 01:20] – [Récursivité] jcheron | cnam:utc503:declarative:prolog [2023/12/07 01:30] (Version actuelle) – [Listes] jcheron | ||
|---|---|---|---|
| Ligne 231: | Ligne 231: | ||
| </ | </ | ||
| + | ==== Listes ==== | ||
| + | <WRAP info> | ||
| + | En Prolog, Les tableaux sont des listes, dans lesquelles les indices des éléments ne sont pas disponibles. | ||
| + | |||
| + | En revanche, une liste L peut toujours être décomposée en L=[E|R] où E est le premier élément de la liste (E n'est pas une liste) et où R est le reste de la liste L (R est une liste : c'est en fait la tranche de L qui démarre apres E). | ||
| + | |||
| + | La liste vide est []. | ||
| + | </ | ||
| + | |||
| + | === Affichage === | ||
| + | |||
| + | <sxh prolog> | ||
| + | affiche([]). | ||
| + | affiche([X|R]) :- write(X), nl, affiche(R). | ||
| + | </ | ||
| + | |||
| + | === Premier élément === | ||
| + | |||
| + | <sxh prolog> | ||
| + | premier([X|_], | ||
| + | </ | ||
| + | |||
| + | === Dernier élément === | ||
| + | |||
| + | <sxh prolog> | ||
| + | dernier([X], | ||
| + | dernier([_|L], | ||
| + | </ | ||
| + | |||
| + | === Compte === | ||
| + | |||
| + | <sxh prolog> | ||
| + | compte([], | ||
| + | compte([_|R], | ||
| + | </ | ||
| + | |||
| + | === Somme === | ||
| + | |||
| + | <sxh prolog> | ||
| + | somme([], | ||
| + | somme([X|R], | ||
| + | </ | ||
| ==== Sudoku ==== | ==== Sudoku ==== | ||