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
(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

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

(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
(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