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 03/11/2008, 12h55   #1
mselmi
Futur Membre du Club
 
Étudiant
Inscription : novembre 2008
Messages : 26
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2008
Messages : 26
Points : 15
Points : 15
Envoyer un message via MSN à mselmi Envoyer un message via Skype™ à mselmi
Bonjour,
Je cherche une solution pour ce problème:
Dans la liste à plusieurs niveaux laisser les atomes contenant les chiffres

exemple (as34 tt66 ( hhj lo3 ) bb m9) ---> (as34 tt66 (lo3) m9)

Merci
mselmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2008, 16h50   #2
Zavonen
Rédacteur
 
Avatar de Zavonen
 
Inscription : novembre 2006
Messages : 1 757
Détails du profil
Informations personnelles :
Âge : 65

Informations forums :
Inscription : novembre 2006
Messages : 1 757
Points : 1 705
Points : 1 705
Tu écris un postulat AsDigit qui teste si un atome contient un chiffre ou non.
Dans ton interprète il doit y avoir en standard une fonction explode ou un truc du genre qui transforme les atomes littéraux en listes de caractères, ainsi que des fonctions qui testent si un caractère est un chiffre.
Cela fait tu écris ta fonction drop ainsi:
L'argument L est supposé être une liste.
Tu regardes si (car L) est un atome.
Si c'est le cas tu retournes (drop (cdr L)) s'il contient des chiffres, et sinon
tu retournes (cons (car L) (drop (cdr L)))
Si ce n'est pas un atome tu retournes (cons (drop (car L)) (drop (cdr L)))
Mettons que ton postulat s'appelle HasDigit
(defun drop (L)
(if (atomp (car L))
(if (HasDigit (car L))
(drop (cdr L)))
(cons (car L) (drop (cdr L))))
(cons (drop (car L)) (drop (cdr L))))))
Je ne garantis pas la syntaxe.
LISP: Lots of Insipid and Stupid Parentheses.
But so nice !!!
Pour les cours je connais surtout des références anciennes Patrick Henry Winston, Harald Wertz.
__________________
Ce qu'on trouve est plus important que ce qu'on cherche.
Maths de base pour les nuls (et les autres...)
Zavonen est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2008, 19h53   #3
Garulfo
Inactif
 
Inscription : juillet 2005
Messages : 1 958
Détails du profil
Informations personnelles :
Âge : 47

Informations forums :
Inscription : juillet 2005
Messages : 1 958
Points : 2 209
Points : 2 209
Citation:
Envoyé par mselmi Voir le message
Bonjour,
Je cherche une solution pour ce problème:
Dans la liste à plusieurs niveaux laisser les atomes contenant les chiffres

exemple (as34 tt66 ( hhj lo3 ) bb m9) ---> (as34 tt66 (lo3) m9)

Merci
Il faut que tu nous montres que tu as commencé à chercher. Comme ça on verra où tu bloques et on pourra t'aider. C'est extrêmement facile quand on connait la solution.

Garulfo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2008, 22h56   #4
mselmi
Futur Membre du Club
 
Étudiant
Inscription : novembre 2008
Messages : 26
Détails du profil
Informations personnelles :
Âge : 29

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : novembre 2008
Messages : 26
Points : 15
Points : 15
Envoyer un message via MSN à mselmi Envoyer un message via Skype™ à mselmi
Par défaut Merci

Citation:
Envoyé par Zavonen Voir le message
Tu écris un postulat AsDigit qui teste si un atome contient un chiffre ou non.
Dans ton interprète il doit y avoir en standard une fonction explode ou un truc du genre qui transforme les atomes littéraux en listes de caractères, ainsi que des fonctions qui testent si un caractère est un chiffre.
Cela fait tu écris ta fonction drop ainsi:
L'argument L est supposé être une liste.
Tu regardes si (car L) est un atome.
Si c'est le cas tu retournes (drop (cdr L)) s'il contient des chiffres, et sinon
tu retournes (cons (car L) (drop (cdr L)))
Si ce n'est pas un atome tu retournes (cons (drop (car L)) (drop (cdr L)))
Mettons que ton postulat s'appelle HasDigit
(defun drop (L)
(if (atomp (car L))
(if (HasDigit (car L))
(drop (cdr L)))
(cons (car L) (drop (cdr L))))
(cons (drop (car L)) (drop (cdr L))))))
Je ne garantis pas la syntaxe.
LISP: Lots of Insipid and Stupid Parentheses.
But so nice !!!
Pour les cours je connais surtout des références anciennes Patrick Henry Winston, Harald Wertz.
Merci
mselmi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2011, 12h59   #5
handetaker
Futur Membre du Club
 
Homme yorick
Étudiant
Inscription : avril 2011
Messages : 17
Détails du profil
Informations personnelles :
Nom : Homme yorick
Localisation : Finlande

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 17
Points : 15
Points : 15
Citation:
Envoyé par mselmi Voir le message
Merci
Citation:
Bonjour Comment faire pour savoir si un atome contient un nombre ou pas svp?
handetaker 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 03h11.


 
 
 
 
Partenaires

Hébergement Web