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 :

operation logique en SICSTUS Prolog (or/ou)


Sujet :

Prolog

  1. #1
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut operation logique en SICSTUS Prolog (or/ou)
    Bonjour, j'apprends le prolog via l'université, mais comme c'est à distance je suis un peu coincé.
    Dans un exemple du cours le prof fait une opération logique OU en utilisant ce signe \/ (backslash+slash).
    J'ai essayé de reproduire la même chose sous Sicstus (via spider/eclipse) et il ne le reconnaît malheureusement pas (undefinate predicate).
    Je suis obligé de passer par le OU, et du coup je ne peux pas tester mon code. Faut il ajouter une bibliothèque ?
    Merci.

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Bonjour
    Je n'utilise pas Sicstus mais je pense qu'il faut charger l'équivalent Sictus de la bibliothèque clpfd de SWI-Prolog, c'est une bibliothèque de programmation sur les domaines finis.
    Si ce n'est pas ça, alors peut-être fat-il tester en remplaçant le \/ par ";" qui est le symbole du "ou" logique en Prolog.

  3. #3
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Oui ,j'y avais pensé mais apparemment l'erreur apparaît toujours.

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Vous pouvez montrer le bout de code correspondant ?

  5. #5
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Vous pouvez montrer le bout de code correspondant ?
    bonjour voici le code, spider(eclipse) me souligne le \/ en jaune :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    subA(A2, A5, 6)\/subA(A5, A2, 6),

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Et en remplaçant le \/ par un ';' ça ne marche pas ?
    PS je m'attendais à un bout de code plus important ! qu'est censé faire subA(A2, A5, 6) ?

  7. #7
    Membre averti
    Avatar de stc074
    Homme Profil pro
    Codeur du dimanche
    Inscrit en
    Janvier 2009
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Lozère (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Codeur du dimanche

    Informations forums :
    Inscription : Janvier 2009
    Messages : 1 015
    Points : 407
    Points
    407
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Et en remplaçant le \/ par un ';' ça ne marche pas ?
    PS je m'attendais à un bout de code plus important ! qu'est censé faire subA(A2, A5, 6) ?
    J'y ai pensé aussi pour le ; mais là c'est plus du jaune que j'ai mais du rouge ! (il n'arrive plus à unifier les variables à droite du ; ).
    J'ai pas voulu mettre tout mon code, car il est faux (en fait j'ai beaucoup de mal en Prolog) et donc incompréhensible (c'est un devoir à rendre encore une bonne note en perspective :-), voici le prédicat subA, c'est une bidouille que j'ai inventé pour pouvoir unifier certaines variables :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    subA(1,2,2).
    subA(1,3,4).
    subA(1,4,6).
    subA(1,5,8).
    subA(2,3,2).
    subA(2,4,4).
    subA(2,5,6).
    subA(3,4,2).
    subA(3,5,4).
    subA(4,5,2).

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    C'est sur que si subA à gauche du ';' réussit, toute la suite est ignorée.
    Si tu veux subA(A2, A5, 6)\/subA(A5, A2, 6), il faut écrire (subA(A2, A5, 6);subA(A5, A2, 6)),. Là, une fois que la parenthèse "réussit", tu continues la suite du prédicat.

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/06/2008, 11h32
  2. Réponses: 1
    Dernier message: 29/05/2008, 19h15
  3. [Sicstus Prolog] List of random
    Par polochonad dans le forum Prolog
    Réponses: 2
    Dernier message: 24/04/2008, 19h01
  4. [Sicstus Prolog] =.. /2 : Meta Logic
    Par polochonad dans le forum Prolog
    Réponses: 4
    Dernier message: 23/04/2008, 19h27
  5. Operation Logique Binaire
    Par gilles06 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/03/2008, 17h20

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