unapply - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


unapply

returns an operator from an expression and arguments

MakeFunction

returns an operator from an expression and arguments

 

Calling Sequence

Parameters

Options

Description

Examples

References

Compatibility

Calling Sequence

MakeFunction(expr, x, y, ..)

MakeFunction(expr, x, y, .., options)

MakeFunction(expr, l)

MakeFunction(expr, l, options)

unapply(expr, x, y, ..)

unapply(expr, x, y, .., options)

unapply(expr, l)

unapply(expr, l, options)

Parameters

expr

-

expression

x, y, ..

-

variable names, or names with type specifiers

l

-

list of variable names

options

-

list of optional arguments

Options

  

The following optional arguments are available.

• 

numeric=variables

  

For this option variables must be a set or list of variable names, or a single variable name, all of which must correspond to a variable in the input for MakeFunction (that is, in either the list or the specified variable names). With this option, MakeFunction constructs an operator that returns unevaluated whenever the specified variables do not evaluate to numeric values.

  

Note: This option cannot be used for inputs containing derivatives, such as ⅆⅆxfx or DEsol structures.

  

Providing the optional argument numeric is simply a shortcut for numeric=variables.

• 

proc_options=keywords

  

This option must be a keyword, or list or set of keywords. The MakeFunction command constructs the operator with the specified keywords as options. By default, the options {operator,arrow} are used, but any of arrow, inline, operator, remember, or system are valid keywords.

• 

The MakeFunction command implements the lambda-expressions of lambda calculus.

• 

The unapply command is an alias for MakeFunction; the two commands are the same in all respects.

Description

• 

The result of MakeFunction(expr, x) is a functional operator. Applying this operator to x gives the original expression.

MakeFunctionexpr,xxexpr

• 

In particular, for a function fx,

MakeFunctionfx,xf

• 

To construct a multi-argument operator from a multi-variate expression, list all the variables as arguments to MakeFunction or explicitly put all variables in a list and pass it as the second argument to MakeFunction.

• 

Use the MakeFunction command when constructing an operator using contents of variables or evaluated expressions.

• 

The variable names may be simple names of type symbol (e.g., x, y, z), or names with type specifiers using :: (e.g, x::numeric, y::integer, z::float).

Examples

px2+sinx+1

px2+sinx+1

(1)

fMakeFunctionp,x

fxx2+sinx+1

(2)

fπ6

π236+32

(3)

qx2+y3+1

qy3+x2+1

(4)

funapplyq,x

fxy3+x2+1

(5)

f2

y3+5

(6)

gMakeFunctionq,x,y

gx,yy3+x2+1

(7)

g2,3

32

(8)

hMakeFunctionq,x,y

hx,yy3+x2+1

(9)

h2,3

32

(10)

Example of MakeFunction with the numeric option:

f1MakeFunctionx2+1,x,numeric

f1procxlocalunnamed&semi;iftypeevalfx&comma;&apos;numeric&apos;thenx&Hat;2&plus;1elifprocname<>&apos;unknown&apos;andnotmembersprintf%a&comma;procname&comma;%&comma;%%&comma;%%%then&apos;procname&apos;xelseunnamedpointto36893628798392729284&lsqb;1&rsqb;&semi;&apos;unnamed&apos;xend ifend proc

(11)

f11

2

(12)

f1x

f1x

(13)

This behavior is different from specification of the type with the variable

f2MakeFunctionx2+1&comma;x::numeric

f2x::numericx2+1

(14)

f21

2

(15)

f2x

Error, invalid input: f2 expects its 1st argument, x, to be of type numeric, but received x

Example of MakeFunction with specified options:

f := proc() lprint(`called`); 0; end proc;

fproclprintcalled&semi;0end proc

(16)

polMakeFunctionx2+3x+1+f&comma;x&comma;proc_options=arrow&comma;operator&comma;remember

polxx2+3x+1+f

(17)

pol1

called

5

(18)

pol2

called

11

(19)

pol1

5

(20)

References

  

Gonnet, G.H. "An Implementation of Operators for Symbolic Algebra Systems" SYMSAC. July 1986.

Compatibility

• 

The MakeFunction command was introduced in Maple 2023.

• 

For more information on Maple 2023 changes, see Updates in Maple 2023.

See Also

apply

examples/functionaloperators

operators[D]

operators[functional]