Difference between revisions of "Recital Functions"
Yvonnemilne (Talk | contribs) |
Yvonnemilne (Talk | contribs) |
||
| Line 17: | Line 17: | ||
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|parameters]] statement. The [[PARAMETERS()|parameters()]] function can be used to determine how many actual parameters were specified. | 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|parameters]] statement. The [[PARAMETERS()|parameters()]] function can be used to determine how many actual parameters were specified. | ||
===Calling Recital Functions=== | ===Calling Recital Functions=== | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
Functions can be called like built-in functions: postfixing the name of the function with brackets containing any arguments, e.g. | Functions can be called like built-in functions: postfixing the name of the function with brackets containing any arguments, e.g. | ||
| Line 28: | Line 22: | ||
myudf(m_var,"Hello World",123.45,{12/03/2010}) | myudf(m_var,"Hello World",123.45,{12/03/2010}) | ||
</code> | </code> | ||
| − | |||
| − | |||
Alternatively, the function can be called using the [[DO|do]] command and specifying the arguments in the [[DO|with]] clause, e.g. | Alternatively, the function can be called using the [[DO|do]] command and specifying the arguments in the [[DO|with]] clause, e.g. | ||
| Line 37: | Line 29: | ||
</code> | </code> | ||
| + | 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|set procedure]] command. | ||
| + | <pre> | ||
| + | set procedure to [<filename as character> [ADDITIVE]] | ||
| + | </pre> | ||
===Passing Parameters by Reference=== | ===Passing Parameters by Reference=== | ||
| − | + | Using the [[DO|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. | ||
| + | |||
| + | <code lang="recital"> | ||
| + | myudf(@m_var) | ||
| + | </code> | ||
| + | |||
===Returning Values by Reference=== | ===Returning Values by Reference=== | ||
===Variable Scope=== | ===Variable Scope=== | ||
Revision as of 11:12, 15 March 2010
Contents
- 1 Recital Functions
- 1.1 What is a Recital Function
- 1.2 How to Write a Recital Function
- 1.3 Returning a Value from a Recital Function
- 1.4 Declaring Parameters in a Recital Function
- 1.5 Calling Recital Functions
- 1.6 Passing Parameters by Reference
- 1.7 Returning Values by Reference
- 1.8 Variable Scope
- 1.9 Built-in Functions
- 1.10 Extending with Functions Developed in C/C++
- 1.11 Summary
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)