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 :

Probleme passage de Eclipse prolog a SWI-Prolog


Sujet :

Prolog

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 47
    Points : 30
    Points
    30
    Par défaut Probleme passage de Eclipse prolog a SWI-Prolog
    Bonjour,

    Je dois changer de compilateur. Sur Eclipse prolog je pouvais ecrire cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xcoordinate(X) :- X :: [a,b,c,d,e,f,g,h].
    Maintenant avec Swi-Prolog il me marque comme erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Syntax error: Operator expected
    Quelqu'un a une idée SVP ?

  2. #2
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Mattorre Voir le message
    Quelqu'un a une idée SVP ?
    Pas une idée mais plutôt une question : que signifie "::" ? Sauf erreur grossière de ma part, il ne me semble pas l'avoir déjà vu en Prolog... Je ne sais pas quel Prolog tu utilisais avant mais je ne suis pas convaincu que ce soit du Prolog ISO, "::" doit appartenir à une extension.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    C'est pour dire que X appartient à l'ensemble.

    Je pense que cela vient de la lib(fd) que j'ajoute au debut de mes fichiers et qui marche pas avec SWI

  4. #4
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Mattorre Voir le message
    C'est pour dire que X appartient à l'ensemble.

    Je pense que cela vient de la lib(fd) que j'ajoute au debut de mes fichiers et qui marche pas avec SWI
    Ah ok. Tu ne fais pas "seulement" du prolog, tu fais de la programmation logique par contraintes sur domaines finis (fd = finite domain). Il y a bien une bibliothèque pour ça en SWI Prolog, c'est la CLPFD de Markus Triska. Sa documentation est ici. Je ne peux pas te garantir que c'est la même bibliothèque que celle que tu utilisais, ni même qu'elle aura les mêmes fonctionnalités ou la même façon de fonctionner... Je crois que c'est la même bibliothèque que celle de Sicstus Prolog.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    En faite je veux juste dire que X peut etre egale a a,b,c,d,e,f,g ou h.

    Ya t'il un moyen plus simple que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    appartient(X,[X|_]).
    appartient(X,[A|B]) :-
          X\=A,
          appartient(X,B).

    J'ai enlevé lib(fd) et remplacé les :: par appartient et cela marche.

  6. #6
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Mattorre Voir le message
    En faite je veux juste dire que X peut etre egale a a,b,c,d,e,f,g ou h.
    Oui mais suivant que tu le fais via une contrainte de domaine fini (ce que signifie apparemment : ou via un test simple comme le code que tu donnes, ça ne donne pas du tout la même chose. Jette un coup d'oeil à la doc de la bibliothèque CLPFD, elle fait peut-être des choses qui t'intéressent...

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 47
    Points : 30
    Points
    30
    Par défaut
    En faite c'est bon j'ai pas besoins de faire de la programmation par contraite. C'est juste que j'avais l'habitude d'utiliser :: et je ne cherchais pas a faire autrement.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2010
    Messages : 20
    Points : 26
    Points
    26
    Par défaut
    Sur SWI-ProLog tu peux utiliser la fonction member(X, [a, b, c, d, e]) qui fait exactement la même chose que ta fonction appartient mais en plus efficace car directement implémenté en C.

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

Discussions similaires

  1. probleme avec les listes Swi prolog
    Par JemiliSourour dans le forum Prolog
    Réponses: 4
    Dernier message: 27/07/2010, 16h23
  2. Java et SWI-Prolog sur Eclipse
    Par voltera dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 20/08/2009, 00h00
  3. Passage de TurboProlog à Swi-Prolog
    Par Hello_World dans le forum Prolog
    Réponses: 6
    Dernier message: 25/03/2009, 19h09
  4. [SWI-Prolog] Réseau en Prolog ?
    Par Alp dans le forum Prolog
    Réponses: 4
    Dernier message: 23/06/2008, 17h44
  5. Réponses: 3
    Dernier message: 03/05/2006, 15h30

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