# 10.9 Functions Producing Functions¶

In ugUserMake , you learned how to use the operation function to create a function from symbolic formulas. Here we introduce a similar operation which not only creates functions, but functions from functions.

The facility we need is provided by the package MakeUnaryCompiledFunction(E,S,T). MakeUnaryCompiledFunction This package produces a unary (one-argument) compiled function from some symbolic data generated by a previous computation. MakeBinaryCompiledFunction is available for binary functions. MakeBinaryCompiledFunction The E tells where the symbolic data comes from; the S and T give FriCAS the source and target type of the function, respectively. The compiled function produced has type S-> T. To produce a compiled function with definition p(x)==expr, call compiledFunction(expr,x) from this package. The function you get has no name. You must to assign the function to the variable p to give it that name.

Do some computation.

(x+1/3)^5


Convert this to an anonymous function of x. Assign it to the variable p to give the function a name.

p := compiledFunction(%,x)\$MakeUnaryCompiledFunction(POLY FRAC


INT,DFLOAT,DFLOAT)

Apply the function.

p(sin(1.3))


For a more sophisticated application, read on.