IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Prolog Discussion :

liste déclaration de prédicat


Sujet :

Prolog

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut liste déclaration de prédicat
    Bonjour,

    j'ai une matrice d'entier.
    je veux la traiter ligne par ligne et ajouter le résultat de ce traitement à une liste.

    Don au final, quand je sors de mon prédicat, j'obtiens la liste des solutions correspondant à chacune des lignes de ma matrice.

    J'ai le code qui correspond à ce prédicat, mais il ne marche pas, enfin presque, mais pas tout à fait.

    Voilà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    createShapes(Num,  [[Width, Height, WidthGap, HeightGap] | []], [[Bottom, Top]]):-
    	createShape(Num, Width, Height, WidthGap, HeightGap, Bottom, Top).
    createShapes(1, [[Width, Height, WidthGap, HeightGap] | Reste], [[Bottom, Top] | Suite]):-
    	createShape(1, Width, Height, WidthGap, HeightGap, Bottom, Top),
    	createShapes(1, Reste, Suite).
    j'ai utilisé la trace de Sicstus prolog pour voir ce qui se passe.

    Conclusion, le prédicat me génére bien ma liste,
    mais pour une raison que je ne comprend pas, il continue avec un
    REDO

    Pour info voilà ce que dit la doc de sictus :

    REDO : Prompt at subsequent exits generated by nondeterminate rule bod-
    ies.

    Donc, j'en conclue qu'au dernier appel de ma méthode, après avoir généré ma liste, il tente un appareillage qu'il ne connaît pas et échoue.

    Ca fait un moment que je réfléchis sur ce petit bout de code, mais je ne vois pas ce qui cloche...

    Est ce que vous auriez une petite idée??

    Merci beaucoup.

  2. #2
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    227
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 227
    Points : 98
    Points
    98
    Par défaut
    Je ne comprends vraiment pas pourquoi, mais avec un cut sur mon cas d'arrêt, cela va beaucoup mieux.

    Je marque le post comme résolu, car, en fait le problème est réglé, mais je serais curieux d'avoir une explication, si quelqu'un à le courage...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. obtenir une liste à partir de prédicats
    Par ge_ka dans le forum Prolog
    Réponses: 1
    Dernier message: 08/11/2011, 11h16
  2. Réponses: 2
    Dernier message: 10/08/2010, 13h39
  3. Réponses: 5
    Dernier message: 07/05/2007, 08h16
  4. Erreur sur déclaration de liste
    Par La Truffe dans le forum C++
    Réponses: 4
    Dernier message: 19/02/2006, 19h38
  5. Réponses: 16
    Dernier message: 19/11/2005, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo