Bonjour,
Je débute en PROLOG et j'ai un petit souci.
Je vais simplifier mon problème car je pense que mon erreur est une erreur classique.
Soit la base de fait :
La question :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 homme(toto). homme(tata). homme(tutu). homme(titi).
Maintenant je voudrais créer une liste qui contienne toutes les solutions de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 homme(X). renvoie plusieurs solutions
X Sans utiliser la fonction findall/3 .
Voila le résultat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 liste([]). liste([T|Q]):- liste(Q), !, homme(T).
SWI Prolog me renvoie :
Je voudrais donc enlever la liste vide et mettre tous les éléments dans L.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Pour liste(L). L = [] ; L = [toto] ; L = [tata] ; L = [tutu] ; L = [titi] ;
En fait, j'ai du mal avec les conditions d'arrêt de mes fonctions récursives.
Merci d'avance,
Partager