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 ==== | ||