Section : Les objets du calcul formel
Avant : Les fonctions
Après : Les chaînes de caractères


Listes, séquences, ensembles

Xcas distingue plusieurs sortes de collections d'objets, séparés par des virgules :

$ \bullet$
les listes (entre crochets)
$ \bullet$
les séquences (entre parenthèses)
$ \bullet$
les ensembles (entre pourcentage-accolades)

liste:=[1,2,4,2]
sequence:=(1,2,4,2)
ensemble:=%{1,2,4,2%}

Les listes peuvent contenir des listes (c'est le cas des matrices), alors que les séquences sont plates (un élément d'une séquence ne peut pas être une séquence). Dans un ensemble, l'ordre n'a pas d'importance et chaque objet est unique. Il existe une autre structure, appelée table, dont nous reparlerons plus loin.

Il suffit de mettre une séquence entre crochets pour en faire une liste ou entre accolades précédées de % pour en faire un ensemble. On passe d'une liste à sa séquence associée par op, d'une séquence à sa liste associée par nop. Le nombre d'éléments d'une liste est donné par size.


se:=(1,2,4,2)
li:=[se]
op(li)
nop(se)
%{se%}
size([se])
size(%{se%})

Pour fabriquer une liste ou une séquence, on utilise des commandes d'itération comme $ ou seq (qui itèrent une expression) ou makelist (qui définit une liste à l'aide d'une fonction).


1$5
k^2 $ (k=-2..2)
seq(k^2,k=-2..2)
seq(k^2,k,-2..2)
[k^2$(k=-2..2)]
seq(k^2,k,-2,2)
seq(k^2,k,-2,2,2)
makelist(x->x^2,-2,2)
seq(k^2,k,-2,2,2)
makelist(x->x^2,-2,2,2)

La séquence vide est notée NULL, la liste vide []. Il suffit d'écrire à la suite une séquence, puis une virgule, puis une autre séquence pour les concaténer. Pour ajouter un élément à une liste on utilise append. On accède à un élément d'une liste ou d'une séquence grâce à son indice mis entre crochets, le premier élément étant d'indice 0.


se:=NULL; se:=se,k^2$(k=-2..2); se:=se,1
li:=[1,2]; (li:=append(li,k^2))$(k=-2..2)
li[0],li[1],li[2]

Les polynômes sont souvent définis par une expression, mais ils peuvent aussi être représentés par la liste de leurs coefficients par ordre de degré décroissant, avec comme délimiteurs %[ et %]. Il existe aussi une représentation pour les polynômes à plusieurs variables. Les fonctions symb2poly et poly2symb permettent de passer de la représentation expression à la représentation par liste et inversement, le deuxième argument détermine s'il s'agit de polynômes en une variable (on met le nom de la variable) ou de polynômes à plusieurs variables (on met la liste des variables).

Séquences et listes
E$(k=n..m) créer une séquence
seq(E,k=n..m) créer une séquence
[E$(k=n..m)] créer une liste
makelist(f,k,n,m,p) créer une liste
op(li) passer de liste à séquence
nop(se) passer de séquence à liste
size(li) nombre d'éléments
sum somme des éléments
product produit des éléments
cumSum sommes cumulées des éléments
apply(f,li) appliquer une fonction à une liste
map(li,f) appliquer une fonction à une liste
poly2symb polynôme associé à une liste
symb2poly coefficients d'un polynôme


Section : Les objets du calcul formel
Avant : Les fonctions
Après : Les chaînes de caractères

R. De Graeve, B. Parisse, B. Ycart 2006