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 :

Recherche explication sur les predicats


Sujet :

Prolog

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut Recherche explication sur les predicats
    Bonjour,

    Après avoir parcouru les articles ici : http://prolog.developpez.com/cours/#debutant
    Je suis train d'essayer d'appliquer ce que j'ai cru comprendre !!

    J'ai donc tenter de réaliser un petit programme afin de retrouver des anagrammes

    Mais je me heurte a un problème !
    voici l'ébauche de mon travail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    mot(nue).
    mot(une).
    mot(mot).
     
    anagramme(Mot) :-
    string_to_list(Mot,Decomp),
    permutation(Decomp,Perm),
    string_to_list(Fin,Perm),
    test(Fin).
     
    test(X) :-
    mot(X),
    write(X).
    si j'ai bien compris le principe du predicat, si quand j'appelle test(X) au moment du test mot(X) si cela échoue on n'exécute pas write(x)

    Mon problème quand mot(X) échoue, la permutation s'arrête !! J'ai grand mal a comprendre comment faire un test comme en pascal du style if ... then ... else ...

    merci de votre aide et explication

  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
    Par défaut
    Bonjour

    Je te conseille fortement d'utiliser le débugueur pour suivre tes prédicats.
    Tu le lances en ligne de commande par "gtrace.".
    Il faut avoir décommenter la ligne
    :- (current_prolog_flag(gui, true) -> guitracer ; true). dans le pl.ini pour que ça fonctionne bien.

    Maintenant, il y a un problème au niveau string et atom, ce qui est courant en Prolog. Utilise plutôt atom_codes.
    J'ai refait ton programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    mot(nue).
    mot(une).
    mot(mot).
     
    anagramme(Mot) :-
    	atom_codes(Mot, Decomp),
    	permutation(Decomp,Perm),
            atom_codes(Fin, Perm),
    	test(Fin).
     
    test(X) :-
    	mot(X),
    	write(X), nl,
    	fail.
    On obtient
    2 ?- anagramme(nue).
    nue
    une
    false.
    le fail force le backtrack, et le premier backtrack se retrouve avec permutation/2 et donc tu obtiens la liste.

    Pour les entrées sortie, tu peux regarder ce bout de code
    "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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut
    Merci !!

    J'avais compris que que les caractères étaient retourné en valeur numérique , mais j'ai encore beaucoup à apprendre !!

    Je vais voir pour me trouver un bouquin, et continuer a faire de petit test comme ça

  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
    Par défaut
    Je ne peux que t'encourager
    j'ai beaucoup appris en lisant "The Art of Prolog" de Sterling et Shapiro.
    "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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Je ne peux que t'encourager
    j'ai beaucoup appris en lisant "The Art of Prolog" de Sterling et Shapiro.
    Je vais regarde alors !!

    juste , une dernière question !!
    du coup , j'ai récupérer une liste de mot , et via un petit script bash créer ma liste de mot(xxx).

    peut on appeler ce fichier secondaire ??

    a premiere vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    consult('liste_mot.pl').
     
    ou 
     
    ['liste_mot'].
    en debut de script , ne fonctionne pas alors que depuis prolog, en rentrant ceci , cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ['anagramme'].
    ['liste_mot'].

  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
    Par défaut
    Rien ne t'empêche de mettre en directive de anagramme.pl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    :- consult('liste_mot.pl').
     
    anagramme(Mot) :-
    	atom_codes(Mot, Decomp),
    	permutation(Decomp,Perm),
            atom_codes(Fin, Perm),
    	test(Fin).
     
    test(X) :-
    	mot(X),
    	write(X), nl,
    	fail.
    Tu compiles et ça fonctionne très bien !
    "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
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut
    Merci !

    j'arrête pour ce soir ! et je me remet a lecture !

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Je ne peux que t'encourager
    j'ai beaucoup appris en lisant "The Art of Prolog" de Sterling et Shapiro.
    Je me permet de faire un petit up, demain je voudrais allez commander ce livre demain, es ce que pour un débutant mais avec des bases à peu près correct en programmation, ça n'attaque pas trop à un niveau élevé ??

    merci de vos réponses

  9. #9
    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
    Par défaut
    Personnellement je ne l'ai pas trouvédur, il m'a semblé partir d'assez bas.

    Tu as une liste de bouquins possibles ici , paragraphe 8 " Can you suggest some books on 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

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 56
    Par défaut
    Citation Envoyé par Trap D Voir le message
    Personnellement je ne l'ai pas trouvédur, il m'a semblé partir d'assez bas.

    Tu as une liste de bouquins possibles ici , paragraphe 8 " Can you suggest some books on Prolog?"
    si il est pas si dur , ça me convient !! je voudrais pour une fois , avoir de bonne base; et ne pas retrouve avec un langage et un livre ou je décroche car certains éléments de base me manque

    mais je garde ton lien !! pour la suite !!

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

Discussions similaires

  1. Recherche site sur les maths 1er S
    Par argon dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 02/01/2006, 20h19
  2. [RegEx] preg_replace : explications sur les caractères spéciaux
    Par Anduriel dans le forum Langage
    Réponses: 6
    Dernier message: 05/10/2005, 21h35
  3. Recherche documentation sur les arbres
    Par Oberown dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 22/09/2004, 01h40
  4. recherche doc sur les courbe de bézier
    Par amaury pouly dans le forum OpenGL
    Réponses: 4
    Dernier message: 29/04/2003, 22h41
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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