### 6.39.34 Appliquer une fonction de plusieurs variables à un polynôme donné au format interne :`map`

Le polynôme x2+2xy+y2 s’écrit au format interne :
`% % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % }`
On peut transformer x2+2xy+y2 au format interne avec la commande `symb2poly` (voir 6.26.6). Par exemple `p:=symb2poly((x+y)```^```2,[x,y])` renvoie `% % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % }`
Pour un polynôme de n variables, f va agir sur les coefficients de chaque monôme du polynôme.
Pour agir sur un monôme de n variables, f doit être une fonction de n+1 variables, on considère que ces variables représentent le coefficient, l’exposant de la première variable,...,l’exposant de la n-ième variable et f transforme le coefficient de ce monôme.
Par exemple, si le monôme est 5x2y3, au format interne il s’écrit : `% % % {5,[2,3]% % % }`
et si f est dédfinie par :
`f(a,b,c):=a*(2*b+3*c)`
alors
`map(% % % {5,[2,3]% % % },f)` renvoie le monôme f(5,2,3)x2y3=65x2y3 écrit au format interne, c’est à dire `% % % {65,[2,3]% % % }`
On tape :
`map(% % % {5,[2,3]% % % },(a,b,c)->a*(2b+3c))`
On obtient :
`% % % {65,[2,3]% % % }`
On tape :
`map(% % % {1,[2,0]% % % }+% % % {2,[1,1]% % % }+% % % {1,[0,2]% % % },(a,b,c)->a*(b+2c))`
On obtient :
`% % % {2,[2,0]% % % }+% % % {6,[1,1]% % % }+% % % {4,[0,2]% % % }` car si f est la fonction (a,b,c)−>a*(b+2c) alors f(1,2,0)=2,f(2,1,1)=6, f(1,0,2)=4