### 6.17.2 Transformer une expression en une fonction : unapply

Pour transformer une expression en une fonction, on utilise la commande unapply.
unapply a deux arguments une expression et le nom d’une (ou des) variable(s).
unapply renvoie une fonction définie à partir de cette expression et de la (ou des) variable(s) donnée(s) en argument.

Attention lorsqu’on définit une fonction, le membre de droite de l’affectation n’est pas évalué, ainsi l’écriture `g:=x^2; f(x):=g` ne définit pas la fonction f: x → x2 mais la fonction f: x → g.
On tape :

g:= sin(x+1); f:=unapply(g,x)

On obtient :

(sin(x+1), (x)->sin(x+1))

On a alors la variable g qui contient une expression symbolique et la variable f qui contient une fonction.
On tape :

unapply(exp(x+2),x)

On obtient :

(x)->exp(x+2)

On tape :

f:=unapply(lagrange([1,2,3],[4,8,12]),x)

On obtient :

(x)->4+4*(x-1)

On tape :

f:=unapply(integrate(log(t),t,1,x),x)

On obtient :

(x)->x*log(x)-x+1

On tape :

f:=unapply(integrate(log(t),t,1,x),x)
f(x)

On obtient :

x*log(x)-x+1

Remarque Pour définir, à partir d’une fonction de 2 variables f(x,w), la fonction g qui à w fait correspondre la fonction g(w) définie par : g(w)(x)=f(x,w), on utilise aussi unapply.
On tape :

f(x,w):=2*x+w
g(w):=unapply(f(x,w),x)
g(3)

On obtient :

x->2· x+3