Bonsoir, j'ai écrit un prédicat qui parcourt une liste pour vérifier s'il y a des doublons.
si je passe directement une liste saisie à la main, du style :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 valid([]). valid([X|L]):- not member([X,L]), valid(L).
ç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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part valid([1,2,3,1]).
Sauriez-vous pourquoi ?
Merci d'avance pour vos réponses : )
Partager