BiL_PrimItem

Fonction Catégorie Version
BIL 11 BiL_PrimItem Gestion des Listes 1.0 - Janvier 2007

Description

But Retourne les n premiers éléments d'une liste.
Prototype (BiL_PrimItem Nbr Liste1)
Argument Nbr - Nombre d'éléments de la liste à conserver - entier -
Liste1 - La liste à réduire - Liste -
Retours La liste réduite ou nil
Var. globales Néant
Description Retourne les n premiers éléments d'une liste.
Notes .A l’aide de la fonction reverse, cette routine permet également de retourner les n derniers élélents d’une liste (voir derniers exemples).
Si l’argument nbr est plus grand que le nombre d’éléments de la liste, la liste entière est retournée.
Si l’argument nbr est égal à zéro, la fonction retourne nil.
- Utilise la fonction BiL_DelPrim.
Exemples

Command: (setq list1 '(1 2 3 4 5 6 7 8 9))
	(1 2 3 4 5 6 7 8 9)
	
(BiL_PrimItem 2 list1)   retourne   (1 2)
	
(BiL_PrimItem 12 list1)  retourne   (1 2 3 4 5 6 7 8 9)	

(BiL_PrimItem 4 list1)   retourne   (1 2 3 4)

(BiL_PrimItem 0 list1)   retourne   nil

(BiL_PrimItem x list1)   retourne   nil
	
Autres exemples	
(reverse (BiL_PrimItem 3 (reverse list1))) 
	retourne (7 8 9)
	
(reverse (BiL_PrimItem 1 (reverse ‘("a" "b" "c")))) 
	retourne ("c")

La fonction


  1-  (Defun BiL_PrimItem (*Nbr *List1)

  2-    (if (and *List1 	
  3-	             (Listp *List1)	
  4-	             (= (type *Nbr) 'INT)
  5-        )
  6-       (cond	
  7-         ((<= (length *List1) *Nbr) 	
  8-	              *List1	
  9-         ) 	  		
 10-         (T	
 11-           (reverse (BiL_DelPrim (- (length *List1) *Nbr)(reverse *List1)))
 12-         )
 13-       )				; 	fin de condition
 14-     )				;	fin de if
 15-  ) 


Ligne 2 :  si List1 existe
Ligne 3 :  et que c'est bien une liste
Ligne 4 :  et si Nbr est un nombre entier, 
Ligne 6 :    condition
Ligne 7 :      si le nombre d'éléments de List1 est plus petit ou égal à *Nbr,
Ligne 8 :         retourne *List1
Ligne 10 :     dans les autres cas,
Ligne 11 :     1 - Inverse les éléments de *List1
               2 - Calcule n, la différence entre le nombre d'éléments de *List1 et* Nbr.
               3 - Dans cette liste inversée, à l'aide de la fonction BiL_DelPrim, 
                   enlève les n premiers éléments.
               4 - Inverse à nouveau, ce qui reste de la liste pour retourner les éléments 
                   dans le bon ordre.

Listp : Retourne T si *List1 est une liste, nil dans les autres cas.
Type : retourne le type de l'argument *Nbr.
Length : Renvoie un nombre entier indiquant le nombre d'éléments contenus dans une liste.
Reverse retourne une liste en inversant ses éléments