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 en Prolog


Sujet :

Prolog

  1. #1
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut Liste en Prolog
    Bonjour,

    dans une question d'un exercice sur les listes en Prolog, on nous demande d'écrire les règles nécessaires pour définir le prédicat "member".
    Voilà ce que j'ai répondu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    member(X,[X|_]).
    member(X,[_|Reste]) :- member(X,Reste).
    La seconde question est de modifier le prédicat "member" en ajoutant une règle et un argument de façon à obtenir la réponse vrai si un élément donné X appartient à une liste donnée L, et faux sinon.

    Pouvez-vous m'aider s'il vous plaît.

    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
    Réfléchis à l'utilisation du coupe-choix '!'.
    Pose-toi la question, "quand le troisième argument doit-il prendre la valeur true ou false ?"
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Réfléchis à l'utilisation du coupe-choix '!'.
    Pose-toi la question, "quand le troisième argument doit-il prendre la valeur true ou false ?"
    Merci Trad pour la réponse

    j'utilise le "!" pour exprimer une conditionnelle?

  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
    Non, le coupe-choix à une signification bien précise, je te renvoie à cet article: exécution d'un prédicat prolog
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Bonjour Trad, et merci

    j'ai lu quelque part que le "!" (cut) a pour but de rendre déterministes les recherches, et d'exprimer une conditionnelle aussi.

    je ne vois toujours pas comment je pourrai le faire, je pensais que prolog retourne "yes" ou "no" pour chaque test avec member.

  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
    Salut
    Un prédicat Prolog réussit, Prolog affiche Yes ou échoue et alors Prolog affiche No.
    La seconde question est de modifier le prédicat "member" en ajoutant une règle et un argument de façon à obtenir la réponse vrai si un élément donné X appartient à une liste donnée L, et faux sinon.
    Ici, si je comprends bien ce texte, c'est un peu différent, ton troisième argument doit prendre la valeur vrai si l'élément appartient à la liste et faux sinon, ce qui est différent de réussite/échec.
    Donc ce que tu dois écrire par exemple, si l'élément est dans la liste c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    member_3_arg(X, [X | _], vrai) :- !.
    le ! est utilisé pour dire qu'il ne sert à rien de continuer maintenant qu'on a trouvé l'élément.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Salut
    Un prédicat Prolog réussit, Prolog affiche Yes ou échoue et alors Prolog affiche No.

    Ici, si je comprends bien ce texte, c'est un peu différent, ton troisième argument doit prendre la valeur vrai si l'élément appartient à la liste et faux sinon, ce qui est différent de réussite/échec.
    Donc ce que tu dois écrire par exemple, si l'élément est dans la liste c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    member_3_arg(X, [X | _], vrai) :- !.
    le ! est utilisé pour dire qu'il ne sert à rien de continuer maintenant qu'on a trouvé l'élément.
    Bonsoir Trad

    merci beaucoup pour l'explication j'ai confondu entre réussite/échec de prolog et vrai/faux de l'exercice

    je crois bien avoir compris maintenant comment utiliser le "!" pour modifier le prédicat "member"

    merci encore

  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
    Citation Envoyé par acacia Voir le message
    j'ai confondu entre réussite/échec de prolog et vrai/faux de l'exercice
    A mon avis, cet exercice était destiné justement à ce que les étudiants prennent conscience de cette différence.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

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

Discussions similaires

  1. Aide listes en prolog
    Par McPandou dans le forum Prolog
    Réponses: 3
    Dernier message: 06/03/2012, 23h58
  2. probleme avec les listes Swi prolog
    Par JemiliSourour dans le forum Prolog
    Réponses: 4
    Dernier message: 27/07/2010, 17h23
  3. Fichier .txt vers liste en Prolog
    Par Voltyr dans le forum Prolog
    Réponses: 7
    Dernier message: 24/12/2009, 12h12
  4. Tri d'une liste en Prolog
    Par faressam dans le forum Prolog
    Réponses: 11
    Dernier message: 29/03/2007, 10h33

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