Section : Listes et matrices
Précédent : Listes et matrices
Suivant : Matrices

Manipulation de listes

L'élément d'ordre i de liste est liste[i] ou op(liste,i). Si les éléments sont eux-mêmes des listes, l'élément d'ordre j de la (sous-)liste i est liste[i][j] ou op(liste,[i,j]). Le nombre d'éléments est nops(liste). On peut appliquer certains opérateurs à l'ensemble d'une liste par map, select ou split, itérer une fonction par fp::nest ou fp::fixedpt.
map($1..10, (n->cos((1/2+n)*PI)));
f:= (x,y) -> (x+y^2):
fp::fold(f,1)(a,b,c,d);
g:=x->(1/(1+x)):
fp::nest(g,4)(a);
fp::nestvals(g,4)(a);

fibonacci:= func((if n <= 2 then 1 else f(n-1) + f(n-2) end_if), f, n);
fib:= fp::fixedpt(fp::curry(fibonacci));
fib(n) $ n=0..10;

Créer une liste
[f(i) $ i=a..b] Créer une liste en itérant un paramètre
map Appliquer une fonction aux éléments d'une liste
zip Appliquer une fonction aux éléments de deux listes
fp::fold Itérer récursivement une fonction de deux variables
fp::nestvals Itérer une fonction

Ajouter des éléments
append Ajouter un élément en fin de liste
[x].liste Ajouter un élément en début de liste
linsert Ajouter un élément à une place donnée
_concat ou . Concaténer des listes
Sélectionner ou supprimer des éléments
l[i] ou op(l,i) Elément de rang i
op(l,i..j) Extraire des éléments consécutifs
select Extraire des éléments vérifiant un critère
split Séparer des éléments suivant un critère
subsop Remplacer des éléments de rangs fixés
l[i]:=NIL Supprimer un élément à une position donnée
[op({op(liste)})] Supprimer les éléments redondants
La différence entre split et select est que select retourne uniquement la liste des objets vérifiant le critère donné, alors que split retourne trois listes : les objets pour lesquels le critère vaut TRUE, ceux pour lesquels il vaut FALSE, et les autres.

Trier une liste
revert Inverser l'ordre des éléments
sort Trier selon un ordre spécifié
map(l,op) Aplatir une liste de listes (ou d'autres structures)
map(l,DOM_LIST) Augmenter le nombre de niveaux



Section : Listes et matrices
Précédent : Listes et matrices
Suivant : Matrices