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 :

Différence entre fonction et prédicat ?


Sujet :

Prolog

  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut Différence entre fonction et prédicat ?
    bonjour,
    je débute en Prolog, je trouve un problème dans cet exercice:
    Exercice:
    Lesquelles des séquences de caractères suivantes sont des variables, des
    constantes, des atomes logiques(prédicats), des termes composés(fonctions) ? Donner le
    foncteur et l’arité de chaque terme composé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    aime(maria, natation)
    'aime(maria, natation)'
    morsli(athlete)
    athlete(morsli)
    and(big(burger), cheese(burger))
    and(big(X), cheese(X))
    _and(big(X), cheese(X))
    (morsli a_battu maria)
    a_battu(morsli maria)
    a_battu(morsli, maria)

  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
    Il n'y a pas de fonction en Prolog, on manipule des prédicats.
    Prolog n'évalue pas ses arguments.
    Par exemple aime(maria, natation) est un terme composé, aime est un foncteur d'arité 2 car il a deux arguments qui sont des atomes maria et natation.
    par contre 'aime(maria, natation)' est un atome puisque tout est écrit entre quote (').
    Pour répondre plus avant, il faudrait connaître le Prolog utilisé.
    "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 habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    merci bcp pour votre réponse, ça m'aide
    je voudrais comprendre, il y a des parenthèses dans la séquence: 'aime(maria, natation)' pourquoi est-ce considéré comme une chaîne alphanumérique ?

  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
    Attention, en Prolog tout ce qui est entre quote est un atome, c'est tout.
    On peut ensuite "éclater" l'atome, mais c'est autre chose.
    En Prolog, une chaine alphanumérique pourrait être une "string", un objet plus ou moins bizarre qui est une liste de codes de caractères interprétés à l'affichage comme une chaine de caractères.
    ?- X = "abc", write(X).
    [97,98,99]
    X = [97,98,99].

    ?- X = "abc", writef(X).
    abc
    X = [97,98,99].
    "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 habitué
    Profil pro
    Étudiant
    Inscrit en
    Mars 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2013
    Messages : 388
    Points : 172
    Points
    172
    Par défaut
    ah oui, merci

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2009, 18h23
  2. [Débutant] Différence entre fonction et procédure
    Par secondechance dans le forum Langage
    Réponses: 9
    Dernier message: 21/08/2008, 21h11
  3. Réponses: 0
    Dernier message: 14/03/2008, 00h16
  4. API Windows différence entre fonctions simple EX et A
    Par Astraya dans le forum Windows
    Réponses: 3
    Dernier message: 11/02/2008, 09h39
  5. différence entre fonction() et fonction(void)
    Par ram-0000 dans le forum C++
    Réponses: 8
    Dernier message: 07/11/2007, 17h31

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