Bonjour,
je suis en train d’étudier le prolog mais je n’arrive pas a comprendre comment les listes fonctionnent dans les fonctions, j’ai 3 exemples :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% last(X,[_|Z]):- last(X,Z). last(c,[a,b,c]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% premier(X,L):- L=[X|_]. premier(a,[a,b,c]). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% appartient(X,[X|_Y]). appartient(X,[_Z|Y]):- appartient(X,Y). appartient(c,[a,b,c]). |
1) je ne voit pas a quoi correspond les [X|Y], [_Z|Y], [X|] si quelqu’un pouvait m’expliquer
2) dans la fonction premier par exemple, je check si X est le premier élement de la liste L, comment retourner X si X est le premier élément de L ? dans la théorie je dois ajouter un 2ieme prédicat et utiliser le symbole "!" ? mais je ne comprend pas ce que veut dire le "!"
voila ce que je ferais (mon code ne marche pas)
1 2 3 4 5 6 7 8 | premier(X,L, last_element):- L=[X|_]. ! premier(X,L, last_element):- last_element=[X|_]. premier(a,[a,b,c],last_element). |
par avance merci pour votre aide.
+0
-0