| N° | Fonction | Catégorie | Version |
|---|---|---|---|
| BIL 20 | BiL_PosItem | Gestion des Listes | 1.0 - Janvier 2007 |
| But | Retourne la position de la première occurrence d’un élément dans une liste. |
| Prototype | (BiL_PosItem Cosinus_Angle) |
| Argument | Liste - La liste à traiter - Liste - Item - Elément recherché - tout type - |
| Retours | Le numéro d’ordre - Entier - |
| Var. globales | Néant |
| Description | Retourne la position de la première occurrence d’un élément dans une liste. |
| Notes | Le comptage se fait à partir de zéro (comme nth) : 1er élément = numéro 0, 2ème élément = numéro 1, etc. |
| Exemples |
Commande: (BiL_PosItem '(1 2 3 4 5 6 7 8 9) 5)
retourne 4
(BiL_PosItem '("a" "b" "c" "d" "e" "f" "g") "c")
retourne 2
(BiL_PosItem '("a" "b" "c" "d" "e" "f" "g") "a")
retourne 0
(BiL_PosItem '("a" "b" "c" "d" "e" "b" "g") "b")
retourne 1
Il y a 2 occurrences de "b" mais seule la 1ère est indiquée.
Commande: (BiL_PosItem (list "aa" "bb" "cc") "Z")
retourne nil
L’élément "Z" n’existe pas.
Commande: (Bil_PosItem List3 "X")
retourne nil
List3 n’est pas une liste.
|
1- (defun BiL_PosItem (*List1 *Item) 2- (if (member *Item *List1) 3- (- (length *List1) (length (member *Item *List1))) 4- ) 5- )
Ligne 2 : Si l’argument *Item est bien un élément de *List1,
Ligne 3 : Retourne la soustraction entre :
- le nombre total d’élément de la liste *List1
- le nombre d’éléments se trouvant dans *List1 à partir de *Item
jusqu’à la fin.
Dans tous les autres cas, retourne nil.