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

Online Help

All Products    Maple    MapleSim


Functions

 

Calling Sequence

Description

Examples

Calling Sequence

expr(expseq)

Description

• 

This help page describes the Maple function expression. A "function" expression represents a function call, or application of a function or procedure to arguments. For a list of mathematical functions defined in Maple, see initial functions.  A mathematical function can be defined in Maple using a functional operator.  Use these to define a function of a single variable, a multivariate function, or a vector function.

• 

In Maple, a "function" expression represents a function call, or application of a function or procedure to arguments. Such an expression is said to be of type function. A "typical" example of an expression of type function is the expression fx, which represents the application of the expression f to the argument sequence x. Note that, in this expression, we refer to the entire expression fx as being of type function (that is, a "function call" or "function application"), while the expression f is typically not itself of type function (but often is of type procedure).

• 

The operands of a function expression are the "arguments". For example, the operands of the expression fa,b,c are a, b and c. The expression f may be extracted from this expression as the zero-th operand. See the examples section below for more about this.

• 

In an expression fa,b,c,... of type function, the applied expression f is often a Maple procedure, or a name that evaluates to a procedure. In this case, evaluating the expression causes the procedure f (or to which f evaluates) to be applied to the arguments a,b,c, (see Argument Processing), and the result of evaluating the expression is the value returned by the procedure. However, the expression f need not be a procedure, or even evaluate to one.

• 

In fact, expr can be a complicated expression, such as a list, set, polynomial, or even an expression sequence.

• 

Apart from procedure applications, one of the most useful applications of function expressions is the ability to use them to define abstract data types. This application makes use of Maple's ability to manipulate unevaluated function calls easily and naturally.

• 

Function expressions may be created using the constructor apply.

• 

Assignments to unevaluated function calls can create procedures. When you assign a value to the function expression fx, in which f is an unassigned name, a procedure is created and assigned to f which returns unevaluated for all argument sequences other than x and returns the value assigned when passed the argument x. The value of the expression fx is stored in the remember table of the newly created procedure. Subsequent assignments to unevaluated calls to f further populate this remember table.

• 

In the case when f is a numeric constant, there are some differences in how fx is parsed in 1-D and 2-D input modes.  For example, in 1-D input 2(x) is a function application, but in 2-D by default this means multiplication.  For more information, including how to change this default behavior, see 2DMathDetails.

  

If, in this case, an expression such as 2(x) is a function application, it represents the constant function 2 (the function that is 2 everywhere). The result of evaluating it is the number 2.

Examples

Two ways to apply sin to π:

sinπ

0

(1)

applysin,π

0

(2)

The next command, entered two ways, returns unevaluated.

sinx

sinx

(3)

applysin,x

sinx

(4)

typesinx,function

true

(5)

typesinx,procedure

false

(6)

typesin,function

false

(7)

typesin,procedure

true

(8)

type( 'proc(x) 1+x; end( 2 )', 'function' );

true

(9)

typexx2a,function

true

(10)

sin,cosx

sinx,cosx

(11)

typesin,cosx,function

false

(12)

typesin,cosx,listfunction

true

(13)

typesin,cosx,function

true

(14)

pointtoassemblekerneloptsdagtag=STOPs

stops

(15)

typepointtoassemblekerneloptsdagtag=STOPs,function

true

(16)

interfaceverboseproc=3:

unassignf:

evalf

f

(17)

Assign to this function expression.

f23

f23

(18)

Now f is assigned a procedure with a remember table.

evalf

procoptionremember;'procnameargs'end proc#(2) = 3

(19)

Add more entries to the remember table.

f31:f12:

evalf

procoptionremember;'procnameargs'end proc#(1) = 2#(2) = 3#(3) = 1

(20)

See Also

apply

Argument Processing

functional operators

index of functions

initial functions

op

operator

procedure

type

type/function