Boucle infinie lors d'un parcours d'une liste
Bonsoir, j'ai écrit un prédicat qui parcourt une liste pour vérifier s'il y a des doublons.
Code:
1 2
| valid([]).
valid([X|L]):- not member([X,L]), valid(L). |
si je passe directement une liste saisie à la main, du style :
ça marche parfaitement, mais lorsque j'appelle ce prédicat depuis un autre prédicat et que valid renvoie faux (donc qu'il y a un doublon), j'ai une boucle infinie. Par contre, si valid renvoie vrai, il n'y a pas de boucle infinie. Le problème se produit donc quand valid renvoie faux.
Sauriez-vous pourquoi ?
Merci d'avance pour vos réponses : )