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/09/2011, 15h31   #1
djbad
Futur Membre du Club
 
Inscription : mai 2008
Messages : 154
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 154
Points : 17
Points : 17
Par défaut trouver la position d'un élément

Bonjour à tous
Voila je cherche à trouver la position d'un élément d'une liste donné
le problème je but sur la syntaxe qui me permettrait de résoudre mon probleme
disons que j'ai un liste (a b c)
ma fonction doit pouvoir me retourner 0 quand je souhaite la position de a
et 2 quand je souhaite la position c et nil s'il ne fait parti de la liste
ma fonction marche sauf pour le cas ou il ne fait parti de la liste car j'essayé d'ajouter 1 à nil je sais que je ne suis pas loin
voila la fonction
Citation:
(defun indice (lettre liste)
(cond
((atom liste) nil)
((equal (car liste) lettre) 0)
((1+ (indice lettre (cdr liste))))))
je voudrais pouvoir ajouter un test qui permet de ne pas ajouter 1 si l’élément de la liste est égal à nil
alors j'ai essayé plusieurs chose mais en vain

Citation:
(defun indice (lettre liste)
(cond
((atom liste) nil)
((equal (car liste) lettre) 0)
((not (equal (car liste) nil)) (1+ (indice lettre (cdr liste))))))
ou

Citation:
(defun indice (lettre liste)
(cond
((atom liste) nil)
((equal (car liste) lettre) 0)
((and (not (equal (car liste) nil)) (1+ (indice lettre (cdr liste)))))))
ou
Citation:
(defun indice (lettre liste)
(cond
((atom liste) nil)
((equal (car liste) lettre) 0)
((equal (car liste) nil) nil)
((1+ (indice lettre (cdr liste))))))
Merci pour votre aide
djbad 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 08h47.


 
 
 
 
Partenaires

Hébergement Web