•

A functional operator in Maple is a special form of a procedure. Functional operators are written using arrow notation.

$\mathrm{vars}\to \mathrm{result}$

Here, vars is a sequence of variable names (or a single variable) and result is the result of the procedure acting on vars.

•

For example, the following

$x\to {x}^{2}$

represents the function that squares its argument.

•

Multivariate and vector functions are also allowed. You must put parentheses around vars or result whenever they are expression sequences. For example, the following functions have the correct syntax.

$\left(x,y\right)\to {x}^{2}+{y}^{2}$
$x\to \left(2x,3{x}^{4}\right)$
$\left(x,y,z\right)\to \left(xy,yz\right)$
•

You can also create a functional operator by using the unapply command. (See unapply.)

•

A functional operator of the form:

$\mathrm{vars}\to \mathrm{result}$

is semantically equivalent to:

proc(vars) option operator, arrow; result end



•

The identity operator is expressed as $x\to x$ for any variable name x.

•

Constant operators do not simplify to numbers. For example, $x\to 1$ does not simplify to $1$.

•

Expressions such as $x\to f\left(x\right)$ do not simplify to $f$. This is invalid if $f$ can also take fewer or greater than one argument.

•

Note that optional and keyword parameters (see the paramprocessing help page for more information on these) cannot be used in functional operators. However, type specifiers for parameters are supported. If a type specifier is used, then the parameters must be enclosed in parentheses, even in the case of a single parameter.
