Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Lisp
Lisp Forum d'entraide sur la programmation en langages fonctionnels Lisp et Common Lisp
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 16/07/2012, 22h01   #1
Leon00
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2012
Messages : 5
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 : 5
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
Leon00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2012, 10h46   #2
Whistle
Invité de passage
 
Inscription : octobre 2009
Messages : 4
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 4
Points : 4
Points : 4
hello,
deja, dans ton expression de depart, il n'y a pas autant de parentheses fermantes que d'ouvrantes!
Whistle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2012, 17h45   #3
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

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

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 071
Points : 11 071
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 :
1
2
3
> (cons 1 (cons 2 (cons 3 (cons 4 (cons 5 nil)))))
(1 2 3 4 5)
>
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/07/2012, 22h33   #4
Leon00
Invité de passage
 
Homme
Étudiant
Inscription : juillet 2012
Messages : 5
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 : 5
Points : 4
Points : 4
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 :
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 .....
Leon00 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/07/2012, 01h17   #5
Obsidian
Modérateur
 
Avatar de Obsidian
 
Homme
Chercheur d'emploi
Inscription : septembre 2007
Messages : 4 614
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 36
Localisation : France, Essonne (Île de France)

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

Informations forums :
Inscription : septembre 2007
Messages : 4 614
Points : 11 071
Points : 11 071
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.
Obsidian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h01.


 
 
 
 
Partenaires

Hébergement Web