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 :

[Débutant] Listes


Sujet :

Prolog

  1. #1
    Membre averti Avatar de Tux++
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    281
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 281
    Points : 379
    Points
    379
    Par défaut [Débutant] Listes
    Bonjour,

    je débute en prolog et j'ai besoin de vos éclaircissements,

    Imaginons que j'ai une liste type : [a1,a1,a2,a2,a2]
    je souhaiterai la transformer en : [a1,2,a2,3]

    je ne vois pas trop comment construire cette liste.

    j'arrive à par exemple supprimer les occurences en trop mais pas à indiquer le nombre après...

    Je ne demande pas que vous fassiez le travail à ma place, entendez-moi bien, juste une petite piste

    merci


    PS: En une fonction si possible
    Certified Oracle Advanced PL/SQL Professional
    Certified Oracle APEX Expert
    Certified Oracle SQL Expert

  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
    Pour ce genre de programme, tu as intérêt à parcourir ta liste argument jusqu'à la fin et à construire le résultat en retour de récursion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    regroupe([H | T], L) :-
      % je parcours la liste
      regroupe(T, L1),
      % je suis en retour de la récursion
      <construction de L en fonction de la forme de L1>.
    Tu dois alors te poser la question du résultat lorsque la liste est vide (ou constituée d'un seul élément).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    regroupe([], ...).
    ou
    retour([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
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    429
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 429
    Points : 475
    Points
    475
    Par défaut
    Bonjour,

    Re-débutant en Prolog, je tente ma chance pour progresser :

    regroupe([X],[X,1]).
    regroupe([X|T],[X,N|Q]) :- regroupe(T,[X,M|Q]), N is M+1, !.
    regroupe([X|T],[X,1|Q]) :- regroupe(T,Q).
    % regroupe([a, a, a, b, c, c, d, d, d, d, d], Z).
    % donne : [a,3,b,1,c,2,d,5]
    Toute critique serait réellement appréciée.

    Merci d'avance,
    Cordialement,

    Nicolas

  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
    Ben, je ne vois pas ce qu'il y a à redire sur ton code, il me paraît excellent
    "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. [débutante] listes chainées
    Par zoune dans le forum Langage
    Réponses: 3
    Dernier message: 01/02/2006, 19h24
  2. [débutante] Liste chainée/système expert
    Par zoune dans le forum Langage
    Réponses: 2
    Dernier message: 09/01/2006, 14h41
  3. [Struts] - débutante - liste déroulante
    Par alexx dans le forum Struts 1
    Réponses: 3
    Dernier message: 18/04/2005, 15h01
  4. Réponses: 10
    Dernier message: 04/05/2004, 16h00
  5. [ JSP ][ Débutant ] Liste déroulante + actualisation de page
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 17/04/2004, 19h51

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