### 5.15.2 Transform an expression into a function : unapply

unapply is used to transform an expression into a function.

unapply takes two arguments an expression and the name of a variable.

unapply returns the function defined by this expression and
this variable.

Warning when a function is defined,
the right member of the assignment is not evaluated,
hence `g:=sin(x+1); f(x):=g`

does not defined the function
f: x → sin(x+1) but defines the function
f: x → g. To defined the former function, unapply
should be used, like in the following example:

Input :

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

Output :

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

hence, the variable g is assigned to a symbolic expression
and the variable f is assigned to a function.

Input :

unapply(exp(x+2),x)

Output :

(x)->exp(x+2)

Input :

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

Output :

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

Input :

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

Output :

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

Input :

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

f(x)

Output :

x*log(x)-x+1

Remark
Suppose that f is a function of 2 variables f:(x,w)→ f(x,w),
and that g is the function defined by
g: w → h_{w} where h_{w} is the function defined by
h_{w}(x)=f(x,w).

unapply is also used to define g with Xcas.

Input :

f(x,w):=2*x+w

g(w):=unapply(f(x,w),x)

g(3)

Output :

x->2·x+3