Recital Functions

From Recital Documentation Wiki
Revision as of 11:12, 15 March 2010 by Yvonnemilne (Talk | contribs)

Jump to: navigation, search

Recital Functions

What is a Recital Function

Recital User Defined Functions (UDFs) are blocks of reuseable code which can be used in expressions or as individual commands.

How to Write a Recital Function

The function command is used to declare a User Defined Function (UDF) and is terminated with an endfunc or return statement.

function <name as character>[(<parameters as list>)]
[parameters <parameters as list>]
[return <value as expression> | endfunc]

Returning a Value from a Recital Function

The return statement can optionally return a value.

Declaring Parameters in a Recital Function

A UDF can have a variable number of parameters passed to it. These are assigned to private variables in the the <parameter-list> declaration or parameters statement. The parameters() function can be used to determine how many actual parameters were specified.

Calling Recital Functions

Functions can be called like built-in functions: postfixing the name of the function with brackets containing any arguments, e.g.

myudf(m_var,"Hello World",123.45,{12/03/2010})

Alternatively, the function can be called using the do command and specifying the arguments in the with clause, e.g.

do myudf with m_var,"Hello World",123.45,{12/03/2010}

Functions can be included in program files, as well as in procedure library files. The functions in a procedure library file are made known to the Recital process by using the set procedure command.

set procedure to [<filename as character> [ADDITIVE]] 

Passing Parameters by Reference

Using the do command, parameters are passed by reference by default: the called module is given the address of the memory variable so the memory variable itself can be altered. Using function-calling syntax, parameters are passed by value by default: a copy of the memory variable is passed to the module and the original memory variable is not accessible within the called module. To pass a parameter by reference, the parameter should be preceded by an @ sign.

myudf(@m_var)

Returning Values by Reference

Variable Scope

Built-in Functions

Extending with Functions Developed in C/C++

Summary