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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2016
    Messages : 26
    Points : 15
    Points
    15
    Par défaut Définir une fonction qui modifie une liste en ne gardant que les sous-listes d'une longueur supérieure ou égal
    Bonjour ,

    J'ai un exercice que je n'arrive pas à résoudre avec clisp :
    Définir une fonction qui modifie une liste en ne gardant que les sous-listes d'une longueur supérieure ou égale à un nombre donné
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (setq liste '((a b) c (d) (e f) (e g x) f))
    (longueur 2 liste) => ((a b) (e f) (e g x))
     liste => ((a b) (e f) (e g x))
    Je doit donc déplacer le pointeur avec rplacd si la condition est validée mais comment établir cette condition qui doit être selon le résultat du comptage des atomes dans les sous-listes ?
    Doit je créer 2 fonctions : 1 qui compte et l'autre qui déplacera le pointeur en fonction du retour de la fonction qui compte ?

    Merci pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (defun longueur	(n l)
      (cond
        ((null l) l)
        ((and (listp (car l)) (<= n (length (car l))))
         (cons (car l) (longueur n (cdr l)))
        )
        (T (longueur n (cdr l)))
      )
    )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 341
    Points : 528
    Points
    528
    Par défaut
    Bonjour,

    Une autre solution possible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    (defun filtre-longueur (longueur-min liste)
       (remove-if-not (lambda (element)
                      (and (listp element)
                           (>= (length element) longueur-min)))
                      liste))

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2016
    Messages : 26
    Points : 15
    Points
    15
    Par défaut
    Bonjour ,
    Merci pour vos réponses , c’est plus clair maintenant .
    Ce qu’il me manquait c’etait la fonction length que je connaissais pas et là ça change tout .

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

Discussions similaires

  1. [Python 3.X] Une fonction qui retourne le premier chiffre du nombre et les chiffre decimal
    Par eylul dans le forum Général Python
    Réponses: 2
    Dernier message: 10/10/2015, 19h21
  2. Réponses: 2
    Dernier message: 06/01/2010, 12h32
  3. Fonction qui modifie une chaine de caractère
    Par condor_01 dans le forum Débuter
    Réponses: 7
    Dernier message: 05/11/2007, 18h32
  4. Changer une fonction qui utilise une liste par un tableau!
    Par sara21 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/05/2007, 13h18
  5. [Excel VBA]fonction dans une cellule qui modifie une autre cellule
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 24/01/2007, 17h43

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