N° | Fonction | Catégorie | Version |
---|---|---|---|
BIL 08 | BiL_DelPrim | Gestion des Listes | 1.0 - Janvier 2007 |
But | Retourne une liste après y avoir enlevé les n premiers éléments. |
Prototype | (BiL_DelPrim Nbr Liste1) |
Argument | Nbr - Nombre d'éléments à enlever de la liste - Entier - Liste1 - La liste à réduire - Liste - |
Retours | La liste réduite ou nil |
Var. globales | Néant |
Description | Retourne une liste après y avoir enlevé les n premiers éléments de la liste. |
Notes | Si le nombre à enlever est égal à zéro ou nul, la liste entière est retournée. Voir également les fonctions BiL_DelItem et BiL_DelOne. |
Exemples | Command: (setq list1 '(1 2 3 4 5 6 7 8 9)) (1 2 3 4 5 6 7 8 9) (BiL_DelPrim 2 list1) retourne (3 4 5 6 7 8 9) (BiL_DelPrim 0 list1) retourne (1 2 3 4 5 6 7 8 9) (BiL_DelPrim 8 list1) retourne (9) (BiL_DelPrim 9 list1) retourne nil (BiL_DelPrim z list1) retourne (1 2 3 4 5 6 7 8 9) (Bil_DelPrim 2 '("aa" "bb" "cc")) retourne ("cc") (Bil_DelPrim 3 '("aa" "bb" "cc")) retourne nil |
1- (Defun BiL_DelPrim (*Nbr *List1 / Cpt1) 2- (if (and *List1 3- Listp *List1) 4- (= (type *Nbr) 'INT) 5- ) 6- (progn 7- (setq Cpt1 0 ) 8- (while (< Cpt1 *Nbr) 9- (setq *List1 (cdr *List1) 10- Cpt1 (1+ Cpt1) 11- ) ; fin de setq 12- ) ; fin de while 13- ) ; fin de progn 14- ) ; fin de if 15- *List1 16- )
Ligne 2 : si *List1 existe Ligne 3 : et que c' est bien une liste Ligne 4 : et si *Nbr est un nombre entier, Ligne 7 : initialisation du compteur Cpt1 Ligne 8 : Boucle tant que le compteur Cpt1 est plus petit que *Nbr, Ligne 9 : enlève le 1er élément de *List1 Ligne 10: et incrémente le compteur Cpt1 de 1 Ligne 12 : fin de boucle while - Remonte si Cpt1 inférieur à *Nbr Ligne 15 : retourne *List1 qui n’aura pas changé si les conditions lignes 2 à 4 ne sont pas remplies.