procname and thisproc - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Programming : Procedures and Functions : procname

procname and thisproc

reference to the currently executing procedure

 

Description

Examples

Description

• 

Within a running procedure, the special name procname is substituted by the name with which the procedure was invoked, and the special name thisproc is substituted by the actual procedure invoked.

• 

If there was a chain of evaluations leading to the procedure then procname is the ''last name evaluated'' in the chain. If there is no name then the name unknown is used.

• 

One common use of procname is for a fail return, where it is desired to return the unevaluated function call as the result. This is accomplished by the construct:  'procname(_passed)'.

• 

Note:  This concept of the last name evaluated is also the concept used to determine the result of evaluation in the case of a procedure (or a table).  Namely, for these cases, the result of evaluation is the last name evaluated in the chain of evaluations, and if there is no name then the procedure (or table) structure results.

• 

A common use of thisproc is to implement a recursive call to the currently executing procedure without having to hard code the procedure's name into the procedure body. If procname were used for this purpose, the recursive call would fail if the original procedure was called without referring to it by a name.

• 

For information about the procedure option named procname, see option.

Examples

f := proc (a)
    if a > 0 then
        a^(1/2)
    else
        'procname( _passed )'
    end if
end proc:

gf

g:=f

(1)

g2

2

(2)

g1

f1

(3)

f

f

(4)

g

f

(5)

hevalf:

h2

2

(6)

h1

h1

(7)

h

h

(8)

fact := proc (a)
    if a > 1 then
        a * thisproc(a-1)
    else
        1
    end if
end proc:

fact5

120

(9)

See Also

_passed

option

procedure

return

table

 


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam