 
 
 
6.40.5  Pour fabriquer une séquence ou une liste : seq $
seq peut renvoyer une séquence (avec la même syntaxe que
Maple) ou une liste (avec la même syntaxe que TI) selon la forme 
de ses arguments qui sont : une expression dépendant d’un paramètre (par 
exemple j) et des paramètres décrivant la variation de j.
$ renvoie toujours une séquence et c’est la version infixée de 
seq lorsque seq a comme arguments : une expression dépendant 
d’un paramètre (par exemple j) et (j=a..b) où a et b sont des 
nombres réels (par exemple j^2$ (j=-1..3)).
Mais lorsque seq a comme arguments une expression constante et un nombre
n seq renvoie une liste (par exemple seq(4,3) renvoie 
[4,4,4]) alors que 4$3 renvoie la séquence (4,4,4).
seq a deux, quatre ou cinq arguments car on peut exprimer
la variation de j de a à b avec un seul argument (j=a..b) (avec la 
syntaxe Maple où il n’y a pas la possibilité de mettre un paramètre
de saut) ou avec trois arguments (j,a,b) 
ou avec quatre arguments (j,a,b,p) (syntaxe TI
avec la possibilité de mettre p comme paramètre de saut).
- 
Syntaxe simplifiée Xcas
 Si seq a deux arguments un intervalle de réels a..b et un réel p (le pas)
seq renvoie la séquence des réels entre a et b par pas de p.
 $ a les même arguments mais est une fonction infixée et 
il faut parenthéser les arguments.
 On tape :seq(1..3,0.2) Ou on tape :(1..3)$0.2 On obtient :(1,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,2.8,3.0) On tape :seq(1..3,2/10) Ou on tape :(1..3)$(2/10) On obtient :(1,6/5,7/5,8/5,9/5,2,11/5,12/5,13/5,14/5,3) Pour avoir une liste il suffit de rajouter des crochets :
 On tape :[seq(1..3,0.2)] Ou on tape :[(1..3)$0.2] On obtient :[1,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,2.8,3.0] Si seq a deux (resp trois ou quatre) arguments une expression 
dépendant d’un paramètre (par exemple j) et j=a..b (resp j,a,b)
où a et b sont des nombres réels seq renvoie la séquence (resp 
la liste) obtenue en remplacant j par a, 
a+1..b si b>a dans l’expression et par a, a−1..b si b<a.
 On tape avec 2 arguments :
 seq(2k+1,k=0..6) Ou on tape :(2k+1)$(k=0..6) On obtient une séquence :(1,3,5,7,9,11,13]) Mais si on tape 4 arguments :seq(2k+1,k,0,6) On obtient une liste :[1,3,5,7,9,11,13] Dans ce cas, on peut ajouter un troisième ou un cinquième argument, 
le pas (qui vaut par défaut 1 ou -1).
 On tape :
 seq(2k+1,k=0..6,2) Ou on tape :seq(2k+1,k,0,6,2) On obtient :[1,5,9,13] Si seq a trois arguments :
 une expression dépendant d’une variable, le nom de cette variable et une 
liste.
 seq(expression,variable,liste) équivaut à :
 map(liste,unapply(expression,variable))
On tape :seq(2k+1,k=0..6,2) On obtient :[1,5,9,13] On tape :seq(2k+1,k,[1,5,10,15]) On obtient :[3,11,21,31] 
 $ a les même arguments mais est une fonction infixée et 
il faut parenthéser les arguments.
 On tape :seq(1..3,0.2) Ou on tape :(1..3)$0.2 On obtient :(1,1.2,1.4,1.6,1.8,2.0,2.2,2.4,2.6,2.8,3.0) On tape :seq(2k+1,k=0..2) Ou on tape :(2k+1)$(k=0..2) On obtient :(1,3,5) On tape :seq(2k+1,k=(0..6)$2) Ou on tape :(2k+1)$(k=0..6,2) Ou on tape :(2k+1)$(k=(0..6)$2) On obtient :[1,5,9,13] 
- Syntaxe compatible Maple
 Si seq a comme arguments une expression constante et un nombre n, 
seq renvoie la liste formée par n fois la constante : par exemple 
seq(4,3) renvoie la liste
[4,4,4] alors que 4$3 renvoie la séquence (4,4,4).
 Si seq a comme arguments une expression dépendant d’un 
paramètre (par exemple j) et j=a..b où a et b sont des nombres 
réels seq renvoie la séquence obtenue en remplacant j par a, 
a+1..b si b>a dans l’expression et par a, a−1..b si b<a : par 
exemple seq(2k+1,k=0..3) renvoie (1,3,5,7) et seq(2k+1,k=3..0)
renvoie (7,5,3,1). Dans ce cas, on peut ajouter un troisième argument, 
le pas (qui vaut par défaut 1 ou -1) : par exemple seq(2k+1,k=0..6,2) 
renvoie (1,5,9,13).
 $ a les même arguments mais est une fonction infixée et 
il faut parenthéser les arguments et le pas (qui vaut par défaut 1 ou -1) 
doit être précédé de $ : par exemple (2k+1)$(k=0..3) renvoie 
(1,3,5,7) et (2k+1)$(k=(0..6)$2 renvoie (1,5,9,13).
 On tape :seq(0.4,5) Ou on tape :0.4$5 On obtient :(0.4,0.4,0.4,0.4,0.4) On tape :seq(t,5) Ou on tape :t$5 On obtient :(t,t,t,t,t) Attention si t est une séquence il faut évaluer le résultat 
à l’aide de la commande eval, par exemple :
 On tape :t:=(1,2,3) eval(seq(t,4)) On obtient :[1,2,3,1,2,3,1,2,3,1,2,3] Ou on tape :eval(t$4) On obtient :(1,2,3,1,2,3,1,2,3,1,2,3) Lorsque le 2ième argument est de la forme k=a..b
On tape :seq(2*k+1,k=1..5) Ou on tape :(2*k+1)$(k=1..5) On obtient :(3,5,7,9,11) On tape :seq(2*k+1,k=1..10,2) Ou on tape :(2*k+1)$(k=(1..10$2)) On obtient :(3,7,11,15,19) Pour avoir une liste il suffit de rajouter des crochets :
 On tape :[seq(2*k+1,k=1..5)]] Ou on tape :[(2*k+1)$(k=1..5)] On obtient :[3,5,7,9,11] 
- Syntaxe compatible TI
 Si seq a quatre arguments une expression dépendant d’un 
paramètre (par exemple j), le nom du paramètre (par exemple j), puis 
a et b où a et b sont des nombres réels. seq définit la 
liste obtenue en remplaçant dans l’expression j par a, a+1..b si 
b>a ou par a, a−1..b si b<a).
 Si seq a cinq arguments une expression dépendant d’un 
paramètre (par exemple j), le nom du paramètre (par exemple j), puis 
a et b (où a et b sont des nombres réels) et p le pas (où p 
est un nombre réel positif ou négatif).
 seq définit la liste obtenue en remplaçant dans l’expression j 
par a, a+p..a+k*p (a+k*p ≤ b <a+(k+1)*p ou 
a+k*p ≥ b> a+(k+1)*p). Par défaut, on a p=1 si b>a et p=-1 si 
b<a. Si p n’a pas le bon signe, ce signe est rectifié par le logiciel!
 
Remarque :
 Dans la syntaxe Maple, seq renvoie une séquence et il n’y a pas 
la possibilité de mettre un paramètre de saut, contrairement à la syntaxe
TI où seq renvoie une liste avec 
la possibilité de mettre un paramètre de saut.
On tape pour avoir une liste d’éléments identiques :
seq(t,4)
On obtient :
[t,t,t,t]
Ou on tape pour avoir une séquence d’éléments identiques : 
seq(t,k=1..4)
Ou on tape
t$4
 
On obtient :
(t,t,t,t)
Attention si t est une séquence il faut évaluer le résultat 
à l’aide de la commande eval, par exemple :
On tape :
t:=(1,2,3)
eval(seq(t,4))
On obtient :
[1,2,3,1,2,3,1,2,3,1,2,3]
Ou on tape :
eval(t$4)
On obtient :
(1,2,3,1,2,3,1,2,3,1,2,3)
On tape pour avoir une séquence :
seq(j^3,j=1..4)
Ou on tape 
(j^3)$(j=1..4)
 
On obtient :
(1,4,9,16)
Ou on tape pour avoir une liste :
seq(j^3,j,1,4)
On obtient :
[1,4,9,16]
On tape :
seq(j^3,j,0,5,2)
On obtient :
[0,8,64]
On tape :
seq(j^3,j,5,0,-2)
ou
seq(j^3,j,5,0,2)
On obtient :
[125,27,1]
On tape :
seq(j^3,j,1,3,0.5)
On obtient :
[1,3.375,8,15.625,27]
On tape :
seq(j^3,j,1,3,1/2)
On obtient :
[1,27/8,8,125/8,27]
Exemples d’utilisation du $ ou de seq
- 
On tape pour avoir la dérivée troisième de ln(x) (bien mettre 
les ’ autour de x ou mettre quote(x) car sinon il faut que 
x soit purgé):
diff(ln(x),’x’$3) ou biendiff(ln(x),x,x,x) On obtient :2)/x^3)
 ou on tape en utilisant function_diff et @@),
(attention ! function_diff a comme argument une fonction et 
renvoie une fonction) :g:=function_diff @@3;g(ln)(x) On obtient :
(‘ x‘)->((’function_diff’)@@3)(‘ x‘),2/x^3
 On tape :l:=[[2,3],[5,1],[7,2]] eval(seq((l[k][0])$(l[k][1]),k=0..size(l)-1)) On obtient :2,2,2,5,7,7 
- On tape pour transformer une chaîne en la séquence de ses 
caractères :
char(asc("abracadabrant")[k])$(k=0..dim("abracadabrant")-1)
 ou on tape :f(chn):={
local l;
l:=size(chn);
return seq(chn[j],j,0..l-1);
} puis,f("abracadabrant") On obtient :("a","b","r","a","c","a","d","a","b","r","a","n","t"])) 
- On tape pour avoir la séquence des carrés des nombres premiers de 
0 à 10 :
eval(seq(ifte(isprime(k),k^2,NULL),k=0..10))
 ou on tape :
eval(ifte(isprime(k),k^2,NULL)$(k=0..10))
 On obtient :(4,9,25,49) Pour avoir une liste on tape :
eval(seq(ifte(isprime(k),k^2,NULL),k,0,10))
 ou on tape :
eval([ifte(isprime(k),k^2,NULL)$(k=0..10)])
 On obtient :[4,9,25,49] 
 
 
