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 :

vraiment débutant b a ba des listes


Sujet :

Prolog

  1. #1
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut vraiment débutant b a ba des listes
    pourquoi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     
    my_last(X,[X]).
    my_last(X,[_|L]) :- my_last(X,L).
     
    deb([a ,b, 2, 3, 5, 7]).
    %exécution donne!
    [1] 25 ?- my_last(X,[a ,b, 2, 3, 5, 7]).
    X = 7 ;
    false.
     
    [1] 26 ?- my_last(X,deb).
    false.
     
    [1] 27 ?-
    pourquoi je n'ai pas X=7 à la deuxième exécution ?

    EDIT Fermez la balise code avec [/code]

  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
    Parce que deb n'est pas une liste.
    C'est un prédicat (ou plus précisément un foncteur) d'arité 1 lorsque vous écrivez deb([a ,b, 2, 3, 5, 7]).
    C'est un atome lorsque vous l'écrivez tout seul dans my_last(X, deb).
    D'autre part, en Prolog on met d'abord les arguments d'entrée puis les arguments de sortie my_last(+In, -Out) le + signifiant que In est unifié à l'appel et que Out sera unifié à la sortie du prédicat.
    Dans votre cas, il faudrait écrire my_deb([X], X).
    "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
    Futur Membre du Club
    Homme Profil pro
    retraité
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 5
    Points
    5
    Par défaut Ca a vraimant du mal à entrer
    Citation Envoyé par Trap D Voir le message
    Parce que deb n'est pas une liste.
    C'est un prédicat (ou plus précisément un foncteur) d'arité 1 lorsque vous écrivez deb([a ,b, 2, 3, 5, 7]).
    C'est un atome lorsque vous l'écrivez tout seul dans my_last(X, deb).
    D'autre part, en Prolog on met d'abord les arguments d'entrée puis les arguments de sortie my_last(+In, -Out) le + signifiant que In est unifié à l'appel et que Out sera unifié à la sortie du prédicat.
    Dans votre cas, il faudrait écrire my_deb([X], X).
    1) Merci de votre patience.

    2) je veux créer une liste tel que : a ,b, 2, 3, 5, 7
    j'écris : deb([],[a ,b, 2, 3, 5, 7] ).

    listing(deb) donne :
    ?- listing(deb).
    deb([], [a, b, 2, 3, 5, 7]).

    j' en conclus (peut etre a tort que deb est une liste )

    pouvez vous me donner un exemple simple de manipulation (en mode programme ) de deb
    (par exemple quel est le premier éléments de deb (je suppose a), le dernier (je suppose (7).

    merci d'avance

  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
    Je vous invite à lire cet article pour bien comprendre les bases de Prolog : http://pcaboche.developpez.com/artic.../presentation/
    "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

Discussions similaires

  1. probleme de typage dans des listes , débutant
    Par Freedom57 dans le forum Caml
    Réponses: 7
    Dernier message: 30/10/2010, 19h54
  2. [AC-2010] Débutant : base astuce Lier contenu des listes déroulantes
    Par dbzh35 dans le forum Modélisation
    Réponses: 4
    Dernier message: 16/10/2010, 18h15
  3. [Débutant] Utiliser des listes en argument d'une fonction
    Par erkenbrand dans le forum Windows Forms
    Réponses: 10
    Dernier message: 29/05/2008, 12h56
  4. Réponses: 2
    Dernier message: 14/01/2008, 07h32
  5. Réponses: 5
    Dernier message: 27/02/2007, 11h43

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