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

Lisp Discussion :

append sous-liste vers liste


Sujet :

Lisp

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 8
    Points
    8
    Par défaut append sous-liste vers liste
    Bonjour à vous,*

    j'arrive pas à trouver ce qui manque sur cette fonction !!
    j'ai une liste (a b ( c (d) (e) (f))(g) nil) et je voulais mettre cette liste en une seule liste sans les sous-liste , (a b c d e f g nil)
    j'ai cette fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    (defun seul (liste)
      (cond
        ((not liste) nil)
        ((listp (car liste)) (append (car liste) (seul (cdr liste))))
        (t (cons (car liste)(seul (cdr liste))))))
    Le problème, ce que quand il y a plusieurs listes imbriquées, la fonction ne s’occupe que d’un seul niveau
    (seul '(a b (c (d) (e) (f))(g) nil))
    (A B C (D) (E) (F) G) alors j'obtiens ça, au lieu de (A B C D E F G NIL)

  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
    Ce n'est pas testé mais je ferais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (defun seul (liste)
      (cond
        ((not liste) nil)
    
        ((listp (car liste)) (append        (seul (car liste))               (seul (cdr liste))))
    
        (t (cons (car liste)(seul (cdr liste))))))
    "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
    Étudiant
    Inscrit en
    Juillet 2012
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2012
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Oui tout simplement il teste le chaque car de liste , meme les liste impbriqué
    j'ai testé et ça marche a part qu'il prend pas le NIL de la fin !!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (defun seul (liste)
      (cond
        ((not liste) nil)
     
        ((listp (car liste)) (append (seul (car liste))(seul (cdr liste))))
     
        (t (cons (car liste)(seul (cdr liste))))))
    (seul '(a b (c (d) (e) (f))(g) nil))

    (a b c d e f g ) sans le NIL

  4. #4
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    NIL c'est une liste vide...
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

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

Discussions similaires

  1. [XL-2003] Ctrl C / Ctrl V Spécial (Valeurs) d'un sous total d'une liste vers une autre feuille
    Par graphikris dans le forum Macros et VBA Excel
    Réponses: 43
    Dernier message: 18/05/2013, 15h39
  2. Liste de listes vers matrice
    Par anizlewan dans le forum Général Java
    Réponses: 1
    Dernier message: 03/08/2012, 14h13
  3. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  4. données sous frome de liste
    Par nah_wah dans le forum Langage
    Réponses: 4
    Dernier message: 15/12/2005, 17h21
  5. Réponses: 10
    Dernier message: 30/01/2005, 20h53

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