p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    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 : 4
    Points
    4

    Par défaut question convertir une liste en code avec cons et quote

    Bonjour,
    je suis nouveau ici ,
    je débute en lisp ,
    alors ma question et comment convertir une liste en code avec cons et quote
    par exemple

    (a(b((not c)(d))(e)

    (cons.................................,
    merci de votre reponse

  2. #2
    Invité régulier
    Inscrit en
    octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : octobre 2009
    Messages : 4
    Points : 5
    Points
    5

    Par défaut

    hello,
    deja, dans ton expression de depart, il n'y a pas autant de parentheses fermantes que d'ouvrantes!

  3. #3
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 5 998
    Points : 16 862
    Points
    16 862

    Par défaut

    Bonjour,

    — « cons » produit une « construction », qui est en fait une paire d'éléments ;
    — Une liste est formée par une suite de « cons » imbriquées : dans chacune de ces paires, le terme de gauche est un des éléments de la liste et celui de droite, une autre paire qui contient le reste de la liste, récursivement. La liste touche à sa fin lorsque le terme de droite est NIL.

    Ainsi :

    Code lisp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 nil)))))
    (1 2 3 4 5)
    >

  4. #4
    Invité de passage
    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 : 4
    Points
    4

    Par défaut

    Citation Envoyé par Obsidian Voir le message
    Bonjour,

    — « cons » produit une « construction », qui est en fait une paire d'éléments ;
    — Une liste est formée par une suite de « cons » imbriquées : dans chacune de ces paires, le terme de gauche est un des éléments de la liste et celui de droite, une autre paire qui contient le reste de la liste, récursivement. La liste touche à sa fin lorsque le terme de droite est NIL.

    Ainsi :

    Code lisp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 nil)))))
    (1 2 3 4 5)
    >
    Bonsoir
    Oui je suis d'accord , mais quand il s'agit d'une liste avec des sous liste ,
    (a (b (c d) e)(f)) par exemple. il faut coder cette fonction avec (cons et quote .....

  5. #5
    Responsable Modération
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    septembre 2007
    Messages
    5 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2007
    Messages : 5 998
    Points : 16 862
    Points
    16 862

    Par défaut

    Apparemment, c'est un exercice scolaire. Donc on ne te rendrait pas service si l'on te donnait la solution toute faite, qui reste ma foi fort simple. Est-ce que tu dois écrire une fonction qui transforme n'importe quel liste en son code LISP associé ou est-ce que tu dois juste écrire à la main le code qui donnerait « (A (B (C D) E) (F)) » ?

    Ta sous-liste est un élément de ta liste, au même titre qu'un atome.

    Il s'agira donc d'une construction « cons », puisque c'est une (sous-)liste, mais en tant qu'élément à gauche de la paire adéquate.

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

Discussions similaires

  1. Convertir une liste en prédicat
    Par Myrkvid dans le forum Prolog
    Réponses: 2
    Dernier message: 10/11/2006, 09h26
  2. Réponses: 7
    Dernier message: 05/10/2006, 08h07
  3. Construire une liste de sélection avec 2 tables
    Par domdas dans le forum Requêtes
    Réponses: 1
    Dernier message: 11/08/2006, 14h15
  4. Tri d'une liste d'attente avec priorité
    Par boutchz dans le forum Access
    Réponses: 8
    Dernier message: 02/03/2006, 18h42
  5. Comment initialiser une liste de composants avec une boucle ?
    Par EricSid dans le forum Composants VCL
    Réponses: 5
    Dernier message: 06/04/2005, 18h46

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