| 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.