BiL_DelPrim

Fonction Catégorie Version
BIL 08 BiL_DelPrim Gestion des Listes 1.0 - Janvier 2007

Description

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

La fonction


    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.
Listp : Retourne T si *List1 est une liste, nil dans les autres cas.
Type : Renvoie le type de l'élément spécifié (*Nbr)
While : évalue une expression test, et si elle est non nulle, évalue d'autres expressions ; répète le processus.
Cdr : Renvoie une liste contenant tous les éléments de cette liste sauf le premier.