N° | Fonction | Catégorie | Version |
---|---|---|---|
BIL 11 | BiL_PrimItem | Gestion des Listes | 1.0 - Janvier 2007 |
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") |
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.