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