Previous Up Next

6.42.37  Appliquer une fonction d’une variable aux éléments d’une liste : map apply of

map ou apply ou of sert à appliquer une fonction aux éléments d’une liste. Mais ces trois instructions ne sont pas des synonymes. On a :

On tape :

apply(x->x+1,[3,5,1])

ou

map([3,5,1],x->x+1)

cela ajoute 1 à chaque élément de la liste et on obtient :

[4,6,2]

Remarque
seq(expression,variable,liste) équivaut à :
map(liste,unapply(expression,variable)).
On tape :

seq(x+1,x,[3,5,1])

ou en utilisant unapply pour définir une fonction à partir d’une expression

map([3,5,1],unapply(x+1,x))

cela ajoute 1 à chaque élément de la liste et on obtient :

[4,6,2]

On tape

of(x->x+1,[3,5,1])

et puisque [3,5,1]+1=[3,5,2], on obtient :

[3,5,2]

Exemple avec une matrice
On tape :

apply(x->x+1,[[3,5,1],[3,5,1],[3,5,1]])

ou

map([[3,5,1],[3,5,1],[3,5,1]],x->x+1)

cela ajoute 1 à chaque élément de la liste c’est à dire à chaque ligne de la matrice et comme [3,5,1]+1=[3,5,2], on obtient :

[[3,5,2],[3,5,2],[3,5,2]]

On tape :

of(x->x+1,[[3,5,1],[3,5,1],[3,5,1]])

cela ajoute 1 c’est à dire la matrice identité à la matrice et on obtient :

[[4,5,1],[3,6,1],[3,5,2]]

On tape :

map([[3,5,1],[3,5,1],[3,5,1]],x->x+1,matrix)

cela ajoute 1 à chaque élément de la matrice et on obtient :

[[4,6,2],[4,6,2],[4,6,2]]

Autres exemples On tape :

apply(x->x^2,[3,5,1])

ou

of(x->x^2,[3,5,1])

ou

map([3,5,1],x->x^2)

ou on définit la fonction h(x)=x2 en tapant :

h(x):=x^2

puis

apply(h,[3,5,1])

ou

of(h,[3,5,1])

ou

map([3,5,1],h)

On obtient :

[9,25,1]

On tape :

apply(h,[[3,5,1],[3,5,1],[3,5,1]])

ou

map([[3,5,1],[3,5,1],[3,5,1]],h)

ou

map([[3,5,1],[3,5,1],[3,5,1]],h,matrix)

On obtient chaque èlement au carré :

[[9,25,1],[9,25,1],[9,25,1]]

On tape :

of(h,[[3,5,1],[3,5,1],[3,5,1]])

On obtient le carré de la matrice :

[[27,45,9],[27,45,9],[27,45,9]]

On définit la fonction g(x)=[x,x2,x3] en tapant :

g(x):=[x,x^2,x^3]

ou

g:=(x)->[x,x^2,x^3]

puis, on tape :

apply(g,[3,5,1])

ou

map([3,5,1],g)

On fait agir g sur 3, puis sur 5, puis sur 1 et on obtient :

[[3,9,27],[5,25,125],[1,1,1]]

On tape :

of(g,[3,5,1])

On fait agir g sur la liste [3,5,1] et on obtient :

[[3,5,1],[9,25,1],[27,125,1]]

Remarque
Si l1,l2,l3 sont des listes :
sizes([l1,l2,l3])=map(size,[l1,l2,l3])


Previous Up Next